DbDataAdapter.FillSchema Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior) |
Belirtilen öğesine bir DataTable ekler ve şemayı, belirtilen DataSetSchemaTypetemelinde veri kaynağındaki şemayla eşleşecek şekilde yapılandırılır. |
| FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior) |
Belirtilen DataTable öğesinin şemasını belirtilen SchemaType, komut dizesine ve CommandBehavior değerlere göre yapılandırılır. |
| FillSchema(DataSet, SchemaType, String) |
Belirtilen öğesine bir DataTable ekler ve şemayı, belirtilen SchemaType ve DataTabletemel alınarak veri kaynağındaki şemayla eşleşecek şekilde yapılandırılır.DataSet |
| FillSchema(DataTable, SchemaType) |
Belirtilen öğesinin şemasını belirtilen DataTableSchemaTypeöğesine göre yapılandırıyor. |
| FillSchema(DataSet, SchemaType) |
Belirtilen DataSet öğesine adlandırılmış bir DataTable "Tablo" ekler ve şemayı belirtilen SchemaTypetemelinde veri kaynağındakiyle eşleşecek şekilde yapılandırır. |
FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior)
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
Belirtilen öğesine bir DataTable ekler ve şemayı, belirtilen DataSetSchemaTypetemelinde veri kaynağındaki şemayla eşleşecek şekilde yapılandırılır.
protected:
virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::Data::IDbCommand ^ command, System::String ^ srcTable, System::Data::CommandBehavior behavior);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")]
protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, System.Data.IDbCommand command, string srcTable, System.Data.CommandBehavior behavior);
protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, System.Data.IDbCommand command, string srcTable, System.Data.CommandBehavior behavior);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * System.Data.IDbCommand * string * System.Data.CommandBehavior -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * System.Data.IDbCommand * string * System.Data.CommandBehavior -> System.Data.DataTable[]
Protected Overridable Function FillSchema (dataSet As DataSet, schemaType As SchemaType, command As IDbCommand, srcTable As String, behavior As CommandBehavior) As DataTable()
Parametreler
- schemaType
- SchemaType
Değerlerden SchemaType biri.
- command
- IDbCommand
Veri kaynağından satır almak için kullanılan SQL SELECT deyimi.
- srcTable
- String
Tablo eşlemesi için kullanılacak kaynak tablonun adı.
- behavior
- CommandBehavior
Değerlerden CommandBehavior biri.
Döndürülenler
Veri kaynağından döndürülen şema bilgilerini içeren bir nesne dizisi DataTable .
- Öznitelikler
Açıklamalar
yöntemi, FillSchema kullanarak veri kaynağından şemayı SelectCommandalır. ile ilişkilendirilmiş bağlantı nesnesinin SelectCommand geçerli olması gerekir, ancak açık olması gerekmez. Bağlantı çağrılmadan önce FillSchema kapatılırsa, verileri almak için açılır ve ardından kapatılır. Bağlantı çağrılmadan önce FillSchema açıksa açık kalır.
bir FillSchema işlem hedefine DataSetbir DataTable ekler. Ardından sütununa DataColumnCollectionDataTablesütunlar ekler ve veri kaynağında varsa aşağıdaki DataColumn özellikleri yapılandırılır:
AutoIncrement. ve AutoIncrementSeed öğesini ayrı olarak ayarlamanız AutoIncrementStep gerekir.
FillSchemaayrıca ve Constraints özelliklerini aşağıdaki kurallara göre yapılandırılırPrimaryKey:
bir veya daha fazla birincil anahtar sütunu tarafından SelectCommanddöndürülürse, bunlar için DataTablebirincil anahtar sütunları olarak kullanılır.
Hiçbir birincil anahtar sütunu döndürülmezse ancak benzersiz sütunlar döndürülmezse, benzersiz sütunlar birincil anahtar olarak kullanılır ve yalnızca tüm benzersiz sütunlar iptal edilemezse kullanılır. Sütunlardan herhangi biri null atanabilirse, öğesine ConstraintCollectionbir UniqueConstraint eklenir, ancak PrimaryKey özelliği ayarlanmaz.
Hem birincil anahtar sütunları hem de benzersiz sütunlar döndürülürse, birincil anahtar sütunları için DataTablebirincil anahtar sütunları olarak kullanılır.
Birincil anahtarların ve benzersiz kısıtlamaların önceki kurallara göre öğesine eklendiğini ConstraintCollection , ancak diğer kısıtlama türlerinin eklenmediğini unutmayın.
SQL Server tablosundaki bir sütun veya sütunda benzersiz bir kümelenmiş dizin tanımlanmışsa ve birincil anahtar kısıtlaması ayrı bir sütun kümesinde tanımlanmışsa, kümelenmiş dizindeki sütunların adları döndürülür. Birincil anahtar sütunlarının adını veya adlarını döndürmek için, birincil anahtar dizininin adını belirten SELECT deyimiyle bir sorgu ipucu kullanın. Sorgu ipuçlarını belirtme hakkında daha fazla bilgi için bkz. İpuçları (Transact-SQL) - Sorgu.
bir doldurma sırasında DataTableyinelenen sütunlarla karşılaşırsa, "columnname1", "columnname 2", "columnname3" vb. desenini kullanarak sonraki sütunlar için adlar oluşturur.IDataAdapter Gelen veriler adsız sütunlar içeriyorsa, "Sütun1", "Sütun2" vb. desenine göre yerleştirilir DataSet . Her sonuç kümesine DataSet birden çok sonuç kümesi eklendiğinde ayrı bir tabloya yerleştirilir. Ek sonuç kümeleri, belirtilen tablo adına integral değerleri eklenerek adlandırılır (örneğin, "Tablo", "Tablo1", "Tablo2" vb.). Uygulamanız sütun ve tablo adları kullanıyorsa, bu adlandırma desenleriyle çakışma olmadığından emin olun.
yöntemi, FillSchema adları yalnızca büyük/küçük harfe DataSet göre farklılık gösteren birden çok DataTable nesne içeren senaryoları destekler. Böyle durumlarda, FillSchema ilgili tabloyu bulmak için büyük/küçük harfe duyarlı bir karşılaştırma gerçekleştirir ve tam eşleşme yoksa yeni bir tablo oluşturur. Aşağıdaki C# kodu bu davranışı gösterir.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.FillSchema(dataset, "aaa"); // Fills the schema of "aaa", which already exists in the DataSet.
adapter.FillSchema(dataset, "Aaa"); // Adds a new table called "Aaa".
çağrılırsa FillSchema ve DataSet adı yalnızca büyük/küçük harfe göre farklılık gösteren bir DataTable ad içeriyorsa, bu DataTable güncelleştirilir. Bu senaryoda karşılaştırma büyük/küçük harfe duyarlı değildir. Aşağıdaki C# kodu bu davranışı gösterir.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.FillSchema(dataset, "AAA"); // Fills the schema of table "aaa" because only one similarly named table is in the DataSet.
FillSchema hiçbir satır döndürmez. bir öğesine Fill satır eklemek için DataTableyöntemini kullanın.
Uyarı
Birden çok sonuç döndüren batch SQL deyimlerini işlerken, OLE DB için .NET Framework Veri Sağlayıcısı uygulaması FillSchema yalnızca ilk sonuç için şema bilgilerini alır. Birden çok sonuç için şema bilgilerini almak için, Fill ile değerini MissingSchemaAction olarak AddWithKeyayarlayın.
kullanırken FillSchema, SQL Server için .NET Framework Veri Sağlayıcısı yürütülmekte olan deyime for BROWSE yan tümcesi ekler. Kullanıcı, SET FMTONLY ON deyimlerinin kullanımına müdahale gibi olası yan etkilerin farkında olmalıdır. Daha fazla bilgi için bkz . SET FMTONLY (Transact-SQL).
Devralanlara Notlar
Yönteminin FillSchema(DataSet, SchemaType) bu uygulaması korunur ve .NET Framework veri sağlayıcısı tarafından kullanılmak üzere tasarlanmıştır.
Ayrıca bkz.
Şunlara uygulanır
FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior)
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
Belirtilen DataTable öğesinin şemasını belirtilen SchemaType, komut dizesine ve CommandBehavior değerlere göre yapılandırılır.
protected:
virtual System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")]
protected virtual System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
protected virtual System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
protected virtual System.Data.DataTable FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDbCommand * System.Data.CommandBehavior -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDbCommand * System.Data.CommandBehavior -> System.Data.DataTable
Protected Overridable Function FillSchema (dataTable As DataTable, schemaType As SchemaType, command As IDbCommand, behavior As CommandBehavior) As DataTable
Parametreler
- schemaType
- SchemaType
Değerlerden SchemaType biri.
- command
- IDbCommand
Veri kaynağından satır almak için kullanılan SQL SELECT deyimi.
- behavior
- CommandBehavior
Değerlerden CommandBehavior biri.
Döndürülenler
DataTable Veri kaynağından döndürülen şema bilgilerini içeren nesne.
- Öznitelikler
Açıklamalar
yöntemi, FillSchema kullanarak veri kaynağından şemayı SelectCommandalır. ile ilişkilendirilmiş bağlantı nesnesinin SelectCommand geçerli olması gerekir, ancak açık olması gerekmez. Bağlantı çağrılmadan önce FillSchema kapatılırsa, verileri almak için açılır ve ardından kapatılır. Bağlantı çağrılmadan önce FillSchema açıksa açık kalır.
bir FillSchema işlem hedefine DataSetbir DataTable ekler. Ardından sütununa DataColumnCollectionDataTablesütunlar ekler ve veri kaynağında varsa aşağıdaki DataColumn özellikleri yapılandırılır:
AutoIncrement. ve AutoIncrementSeed öğesini ayrı olarak ayarlamanız AutoIncrementStep gerekir.
FillSchemaayrıca ve Constraints özelliklerini aşağıdaki kurallara göre yapılandırılırPrimaryKey:
bir veya daha fazla birincil anahtar sütunu tarafından SelectCommanddöndürülürse, bunlar için DataTablebirincil anahtar sütunları olarak kullanılır.
Hiçbir birincil anahtar sütunu döndürülmezse ancak benzersiz sütunlar döndürülmezse, benzersiz sütunlar birincil anahtar olarak kullanılır ve yalnızca tüm benzersiz sütunlar iptal edilemezse kullanılır. Sütunlardan herhangi biri null atanabilirse, öğesine ConstraintCollectionbir UniqueConstraint eklenir, ancak PrimaryKey özelliği ayarlanmaz.
Hem birincil anahtar sütunları hem de benzersiz sütunlar döndürülürse, birincil anahtar sütunları için DataTablebirincil anahtar sütunları olarak kullanılır.
Birincil anahtarların ve benzersiz kısıtlamaların önceki kurallara göre öğesine eklendiğini ConstraintCollection , ancak diğer kısıtlama türlerinin eklenmediğini unutmayın.
SQL Server tablosundaki bir sütun veya sütunda benzersiz bir kümelenmiş dizin tanımlanmışsa ve birincil anahtar kısıtlaması ayrı bir sütun kümesinde tanımlanmışsa, kümelenmiş dizindeki sütunların adları döndürülür. Birincil anahtar sütunlarının adını veya adlarını döndürmek için, birincil anahtar dizininin adını belirten SELECT deyimiyle bir sorgu ipucu kullanın. Sorgu ipuçlarını belirtme hakkında daha fazla bilgi için bkz. İpuçları (Transact-SQL) - Sorgu.
bir doldurma sırasında DataTableyinelenen sütunlarla karşılaşırsa, "columnname1", "columnname 2", "columnname3" vb. desenini kullanarak sonraki sütunlar için adlar oluşturur.IDataAdapter Gelen veriler adsız sütunlar içeriyorsa, "Sütun1", "Sütun2" vb. desenine göre yerleştirilir DataSet . Her sonuç kümesine DataSet birden çok sonuç kümesi eklendiğinde ayrı bir tabloya yerleştirilir. Ek sonuç kümeleri, belirtilen tablo adına integral değerleri eklenerek adlandırılır (örneğin, "Tablo", "Tablo1", "Tablo2" vb.). Uygulamanız sütun ve tablo adları kullanıyorsa, bu adlandırma desenleriyle çakışma olmadığından emin olun.
FillSchema hiçbir satır döndürmez. bir öğesine Fill satır eklemek için DataTableyöntemini kullanın.
Uyarı
Birden çok sonuç döndüren batch SQL deyimlerini işlerken, OLE DB için .NET Framework Veri Sağlayıcısı uygulaması FillSchema yalnızca ilk sonuç için şema bilgilerini alır. Birden çok sonuç için şema bilgilerini almak için, Fill ile değerini MissingSchemaAction olarak AddWithKeyayarlayın.
kullanırken FillSchema, SQL Server için .NET Framework Veri Sağlayıcısı yürütülmekte olan deyime for BROWSE yan tümcesi ekler. Kullanıcı, SET FMTONLY ON deyimlerinin kullanımına müdahale gibi olası yan etkilerin farkında olmalıdır. Daha fazla bilgi için bkz . SET FMTONLY (Transact-SQL).
Devralanlara Notlar
Yönteminin FillSchema(DataSet, SchemaType) bu uygulaması korunur ve .NET Framework veri sağlayıcısı tarafından kullanılmak üzere tasarlanmıştır.
Ayrıca bkz.
Şunlara uygulanır
FillSchema(DataSet, SchemaType, String)
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
Belirtilen öğesine bir DataTable ekler ve şemayı, belirtilen SchemaType ve DataTabletemel alınarak veri kaynağındaki şemayla eşleşecek şekilde yapılandırılır.DataSet
public:
cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::String ^ srcTable);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable);
public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType, srcTable As String) As DataTable()
Parametreler
- schemaType
- SchemaType
Şemanın SchemaType nasıl ekleneceğini belirten değerlerden biri.
- srcTable
- String
Tablo eşlemesi için kullanılacak kaynak tablonun adı.
Döndürülenler
öğesine eklenen bir nesne koleksiyonuna DataTableDataSetbaşvuru.
- Öznitelikler
Özel durumlar
Şemanın alınacağı kaynak tablo bulunamadı.
Örnekler
Aşağıdaki örnek, SqlDataAdapterbir öğesini şemayla doldurmak DataSet için türetilmiş sınıfını kullanır ve döndürür DataSet.
public static DataSet GetCustomerData(string dataSetName,
string connectionString)
{
DataSet dataSet = new DataSet(dataSetName);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);
DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
mapping.ColumnMappings.Add("CompanyName", "Name");
mapping.ColumnMappings.Add("ContactName", "Contact");
connection.Open();
adapter.FillSchema(dataSet, SchemaType.Source, "Customers");
adapter.Fill(dataSet);
return dataSet;
}
}
Private Function GetCustomerData(ByVal dataSetName As String, _
ByVal connectionString As String) As DataSet
Dim dataSet As New DataSet(dataSetName)
Using connection As SqlConnection = New SqlConnection(connectionString)
Dim adapter As New SqlDataAdapter( _
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", _
connection)
Dim mapping As DataTableMapping = adapter.TableMappings.Add( _
"Table", "Customers")
mapping.ColumnMappings.Add("CompanyName", "Name")
mapping.ColumnMappings.Add("ContactName", "Contact")
connection.Open()
adapter.FillSchema(dataSet, SchemaType.Source, "Customers")
adapter.Fill(dataSet)
Return dataSet
End Using
End Function
Açıklamalar
Bu yöntem, kullanarak veri kaynağından SelectCommandşema bilgilerini alır.
bir FillSchema işlem hedefine DataSetbir DataTable ekler. Ardından sütununa DataColumnCollectionDataTablesütunlar ekler ve veri kaynağında varsa aşağıdaki DataColumn özellikleri yapılandırılır:
AutoIncrement. ve AutoIncrementSeed öğesini ayrı olarak ayarlamanız AutoIncrementStep gerekir.
FillSchemaayrıca ve Constraints özelliklerini aşağıdaki kurallara göre yapılandırılırPrimaryKey:
bir veya daha fazla birincil anahtar sütunu tarafından SelectCommanddöndürülürse, bunlar için DataTablebirincil anahtar sütunları olarak kullanılır.
Hiçbir birincil anahtar sütunu döndürülmezse ancak benzersiz sütunlar döndürülmezse, benzersiz sütunlar birincil anahtar olarak kullanılır ve yalnızca tüm benzersiz sütunlar iptal edilemezse kullanılır. Sütunlardan herhangi biri null atanabilirse, öğesine ConstraintCollectionbir UniqueConstraint eklenir, ancak PrimaryKey özelliği ayarlanmaz.
Hem birincil anahtar sütunları hem de benzersiz sütunlar döndürülürse, birincil anahtar sütunları için DataTablebirincil anahtar sütunları olarak kullanılır.
Birincil anahtarların ve benzersiz kısıtlamaların önceki kurallara göre öğesine eklendiğini ConstraintCollection , ancak diğer kısıtlama türlerinin eklenmediğini unutmayın.
SQL Server tablosundaki bir sütun veya sütunda benzersiz bir kümelenmiş dizin tanımlanmışsa ve birincil anahtar kısıtlaması ayrı bir sütun kümesinde tanımlanmışsa, kümelenmiş dizindeki sütunların adları döndürülür. Birincil anahtar sütunlarının adını veya adlarını döndürmek için, birincil anahtar dizininin adını belirten SELECT deyimiyle bir sorgu ipucu kullanın. Sorgu ipuçlarını belirtme hakkında daha fazla bilgi için bkz. İpuçları (Transact-SQL) - Sorgu.
Birincil anahtar bilgileri, anahtar sütunları eşleşen satırları bulmak ve değiştirmek için kullanılır Fill . İstenen davranış bu değilse, şema bilgilerini istemeden kullanın Fill .
bir doldurma sırasında DataTableyinelenen sütunlarla karşılaşırsa, "columnname1", "columnname 2", "columnname3" vb. desenini kullanarak sonraki sütunlar için adlar oluşturur.DbDataAdapter Gelen veriler adsız sütunlar içeriyorsa, "Sütun1", "Sütun2" vb. desenine göre yerleştirilir DataSet . Her sonuç kümesine DataSet birden çok sonuç kümesi eklendiğinde ayrı bir tabloya yerleştirilir. Ek sonuç kümeleri, belirtilen tablo adına integral değerleri eklenerek adlandırılır (örneğin, "Tablo", "Tablo1", "Tablo2" vb.). Uygulamanız sütun ve tablo adları kullanıyorsa, bu adlandırma desenleriyle çakışma olmadığından emin olun.
yöntemi, FillSchema adları yalnızca büyük/küçük harfe DataSet göre farklılık gösteren birden çok DataTable nesne içeren senaryoları destekler. Böyle durumlarda, FillSchema ilgili tabloyu bulmak için büyük/küçük harfe duyarlı bir karşılaştırma gerçekleştirir ve tam eşleşme yoksa yeni bir tablo oluşturur. Aşağıdaki C# kodu bu davranışı gösterir.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.FillSchema(dataset, "aaa"); // Fills the schema of "aaa", which already exists in the DataSet.
adapter.FillSchema(dataset, "Aaa"); // Adds a new table called "Aaa".
çağrılırsa FillSchema ve DataSet adı yalnızca büyük/küçük harfe göre farklılık gösteren bir DataTable ad içeriyorsa, bu DataTable güncelleştirilir. Bu senaryoda karşılaştırma büyük/küçük harfe duyarlı değildir. Aşağıdaki C# kodu bu davranışı gösterir.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.FillSchema(dataset, "AAA"); // Fills the schema of table "aaa" because only one similarly named table is in the DataSet.
IDbConnection Select komutuyla ilişkili nesne geçerli olmalıdır, ancak açılması gerekmez. IDbConnection çağrılmadan önce FillSchema kapatılırsa, verileri almak için açılır ve ardından kapatılır. Bağlantı çağrılmadan önce FillSchema açıksa açık bırakılır.
Uyarı
Birden çok sonuç döndüren batch SQL deyimlerini işlerken, OLE DB için .NET Framework Veri Sağlayıcısı uygulaması FillSchema yalnızca ilk sonuç için şema bilgilerini alır. Birden çok sonuç için şema bilgilerini almak için, Fill ile değerini MissingSchemaAction olarak AddWithKeyayarlayın.
kullanırken FillSchema, SQL Server için .NET Framework Veri Sağlayıcısı yürütülmekte olan deyime for BROWSE yan tümcesi ekler. Kullanıcı, SET FMTONLY ON deyimlerinin kullanımına müdahale gibi olası yan etkilerin farkında olmalıdır. Daha fazla bilgi için bkz . SET FMTONLY (Transact-SQL).
Ayrıca bkz.
Şunlara uygulanır
FillSchema(DataTable, SchemaType)
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
Belirtilen öğesinin şemasını belirtilen DataTableSchemaTypeöğesine göre yapılandırıyor.
public:
System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType);
public System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType);
public System.Data.DataTable FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType -> System.Data.DataTable
Public Function FillSchema (dataTable As DataTable, schemaType As SchemaType) As DataTable
Parametreler
- schemaType
- SchemaType
Değerlerden SchemaType biri.
Döndürülenler
DataTable Veri kaynağından döndürülen şema bilgilerini içeren bir.
- Öznitelikler
Örnekler
Aşağıdaki örnek, SqlDataAdapterbir öğesini şemayla doldurmak DataSet için türetilmiş sınıfını kullanır ve döndürür DataTable.
public static DataTable GetCustomerData(string dataSetName,
string connectionString)
{
DataTable table = new DataTable(dataSetName);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);
DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
mapping.ColumnMappings.Add("CompanyName", "Name");
mapping.ColumnMappings.Add("ContactName", "Contact");
connection.Open();
adapter.FillSchema(table, SchemaType.Mapped);
adapter.Fill(table);
return table;
}
}
Private Function GetCustomerData(ByVal dataTableName As String, _
ByVal connectionString As String) As DataTable
Dim table As New DataTable(dataTableName)
Using connection As SqlConnection = New SqlConnection(connectionString)
Dim adapter New SqlDataAdapter( _
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", _
connection)
Dim mapping As DataTableMapping = adapter.TableMappings.Add( _
"Table", "Customers")
mapping.ColumnMappings.Add("CompanyName", "Name")
mapping.ColumnMappings.Add("ContactName", "Contact")
connection.Open()
adapter.FillSchema(table, SchemaType.Mapped)
adapter.Fill(table)
Return table
End Using
End Function
Açıklamalar
yöntemi, FillSchema kullanarak veri kaynağından şemayı SelectCommandalır. ile ilişkilendirilmiş bağlantı nesnesinin SelectCommand geçerli olması gerekir, ancak açık olması gerekmez. Bağlantı çağrılmadan önce FillSchema kapatılırsa, verileri almak için açılır ve ardından kapatılır. Bağlantı çağrılmadan önce FillSchema açıksa açık kalır.
İşlem FillSchema bir DataTabledöndürür. Ardından sütununa DataColumnCollectionDataTablesütunlar ekler ve veri kaynağında varsa aşağıdaki DataColumn özellikleri yapılandırılır:
AutoIncrement. ve AutoIncrementSeed öğesini ayrı olarak ayarlamanız AutoIncrementStep gerekir.
FillSchemaayrıca ve Constraints özelliklerini aşağıdaki kurallara göre yapılandırılırPrimaryKey:
için
DataTablebir PrimaryKey zaten tanımlanmışsa veyaDataTableveri içeriyorsa,PrimaryKeyözelliği ayarlanmaz.bir veya daha fazla birincil anahtar sütunu tarafından SelectCommanddöndürülürse, bunlar için
DataTablebirincil anahtar sütunları olarak kullanılır.Hiçbir birincil anahtar sütunu döndürülmezse ancak benzersiz sütunlar döndürülmezse, benzersiz sütunlar birincil anahtar olarak kullanılır ve yalnızca tüm benzersiz sütunlar iptal edilemezse kullanılır. Sütunlardan herhangi biri null atanabilirse, öğesine ConstraintCollectionbir UniqueConstraint eklenir, ancak
PrimaryKeyözelliği ayarlanmaz.Hem birincil anahtar sütunları hem de benzersiz sütunlar döndürülürse, birincil anahtar sütunları için
DataTablebirincil anahtar sütunları olarak kullanılır.
Birincil anahtarların ve benzersiz kısıtlamaların önceki kurallara göre öğesine eklendiğini ConstraintCollection , ancak diğer kısıtlama türlerinin eklenmediğini unutmayın. Bu işlem, sunucuya birkaç gidiş dönüş gerektirebilir.
SQL Server tablosundaki bir sütun veya sütunda benzersiz bir kümelenmiş dizin tanımlanmışsa ve birincil anahtar kısıtlaması ayrı bir sütun kümesinde tanımlanmışsa, kümelenmiş dizindeki sütunların adları döndürülür. Birincil anahtar sütunlarının adını veya adlarını döndürmek için, birincil anahtar dizininin adını belirten SELECT deyimiyle bir sorgu ipucu kullanın. Sorgu ipuçlarını belirtme hakkında daha fazla bilgi için bkz. İpuçları (Transact-SQL) - Sorgu.
bir doldurma sırasında DataTableyinelenen sütunlarla karşılaşırsa, "columnname1", "columnname 2", "columnname3" vb. desenini kullanarak sonraki sütunlar için adlar oluşturur.DbDataAdapter Gelen veriler adsız sütunlar içeriyorsa, "Sütun1", "Sütun2" vb. desenine göre yerleştirilir DataSet . Her sonuç kümesine DataSet birden çok sonuç kümesi eklendiğinde ayrı bir tabloya yerleştirilir. Ek sonuç kümeleri, belirtilen tablo adına integral değerleri eklenerek adlandırılır (örneğin, "Tablo", "Tablo1", "Tablo2" vb.). Uygulamanız sütun ve tablo adları kullanıyorsa, bu adlandırma desenleriyle çakışma olmadığından emin olun.
FillSchema hiçbir satır döndürmez. bir öğesine Fill satır eklemek için DataTableyöntemini kullanın.
Uyarı
Birden çok sonuç döndüren batch SQL deyimlerini işlerken, OLE DB için .NET Framework Veri Sağlayıcısı uygulaması FillSchema yalnızca ilk sonuç için şema bilgilerini alır. Birden çok sonuç için şema bilgilerini almak için, Fill ile değerini MissingSchemaAction olarak AddWithKeyayarlayın.
kullanırken FillSchema, SQL Server için .NET Framework Veri Sağlayıcısı yürütülmekte olan deyime for BROWSE yan tümcesi ekler. Kullanıcı, SET FMTONLY ON deyimlerinin kullanımına müdahale gibi olası yan etkilerin farkında olmalıdır. Daha fazla bilgi için bkz . SET FMTONLY (Transact-SQL).
Ayrıca bkz.
Şunlara uygulanır
FillSchema(DataSet, SchemaType)
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
- Kaynak:
- DbDataAdapter.cs
Belirtilen DataSet öğesine adlandırılmış bir DataTable "Tablo" ekler ve şemayı belirtilen SchemaTypetemelinde veri kaynağındakiyle eşleşecek şekilde yapılandırır.
public:
override cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public override System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
public override System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Overrides Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()
Parametreler
- schemaType
- SchemaType
Şemanın SchemaType nasıl ekleneceğini belirten değerlerden biri.
Döndürülenler
öğesine eklenen bir nesne koleksiyonuna DataTableDataSetbaşvuru.
Uygulamalar
- Öznitelikler
Örnekler
Aşağıdaki örnek, SqlDataAdapterbir öğesini şemayla doldurmak DataSet için türetilmiş sınıfını kullanır ve döndürür DataSet.
public static DataSet GetCustomerData(string dataSetName,
string connectionString)
{
DataSet dataSet = new DataSet(dataSetName);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);
DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
mapping.ColumnMappings.Add("CompanyName", "Name");
mapping.ColumnMappings.Add("ContactName", "Contact");
connection.Open();
adapter.FillSchema(dataSet, SchemaType.Mapped);
adapter.Fill(dataSet);
return dataSet;
}
}
Private Function GetCustomerData(ByVal dataSetName As String, _
ByVal connectionString As String) As DataSet
Dim dataSet As New DataSet(dataSetName)
Using connection As SqlConnection = New SqlConnection(connectionString)
Dim adapter As New SqlDataAdapter( _
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", _
connection)
Dim mapping As DataTableMapping = adapter.TableMappings.Add( _
"Table", "Customers")
mapping.ColumnMappings.Add("CompanyName", "Name")
mapping.ColumnMappings.Add("ContactName", "Contact")
connection.Open()
adapter.FillSchema(dataSet, SchemaType.Mapped)
adapter.Fill(dataSet)
Return dataSet
End Using
End Function
Açıklamalar
Bu yöntem, kullanarak veri kaynağından SelectCommandşema bilgilerini alır.
bir FillSchema işlem hedefine DataSetbir DataTable ekler. Ardından sütununa DataColumnCollectionDataTablesütunlar ekler ve veri kaynağında varsa aşağıdaki DataColumn özellikleri yapılandırılır:
AutoIncrement. ve AutoIncrementSeed öğesini ayrı olarak ayarlamanız AutoIncrementStep gerekir.
FillSchemaayrıca ve Constraints özelliklerini aşağıdaki kurallara göre yapılandırılırPrimaryKey:
bir veya daha fazla birincil anahtar sütunu tarafından SelectCommanddöndürülürse, bunlar için DataTablebirincil anahtar sütunları olarak kullanılır.
Hiçbir birincil anahtar sütunu döndürülmezse ancak benzersiz sütunlar döndürülmezse, benzersiz sütunlar birincil anahtar olarak kullanılır ve yalnızca tüm benzersiz sütunlar iptal edilemezse kullanılır. Sütunlardan herhangi biri null atanabilirse, öğesine ConstraintCollectionbir UniqueConstraint eklenir, ancak PrimaryKey özelliği ayarlanmaz.
Hem birincil anahtar sütunları hem de benzersiz sütunlar döndürülürse, birincil anahtar sütunları için DataTablebirincil anahtar sütunları olarak kullanılır.
Birincil anahtarların ve benzersiz kısıtlamaların önceki kurallara göre öğesine eklendiğini ConstraintCollection , ancak diğer kısıtlama türlerinin eklenmediğini unutmayın.
SQL Server tablosundaki bir sütun veya sütunda benzersiz bir kümelenmiş dizin tanımlanmışsa ve birincil anahtar kısıtlaması ayrı bir sütun kümesinde tanımlanmışsa, kümelenmiş dizindeki sütunların adları döndürülür. Birincil anahtar sütunlarının adını veya adlarını döndürmek için, birincil anahtar dizininin adını belirten SELECT deyimiyle bir sorgu ipucu kullanın. Sorgu ipuçlarını belirtme hakkında daha fazla bilgi için bkz. İpuçları (Transact-SQL) - Sorgu.
Birincil anahtar bilgileri, anahtar sütunları eşleşen satırları bulmak ve değiştirmek için kullanılır Fill . İstenen davranış bu değilse, şema bilgilerini istemeden kullanın Fill .
bir doldurma sırasında DataTableyinelenen sütunlarla karşılaşırsa, "columnname1", "columnname 2", "columnname3" vb. desenini kullanarak sonraki sütunlar için adlar oluşturur.IDataAdapter Gelen veriler adsız sütunlar içeriyorsa, "Sütun1", "Sütun2" vb. desenine göre yerleştirilir DataSet . Her sonuç kümesine DataSet birden çok sonuç kümesi eklendiğinde ayrı bir tabloya yerleştirilir. Ek sonuç kümeleri, belirtilen tablo adına integral değerleri eklenerek adlandırılır (örneğin, "Tablo", "Tablo1", "Tablo2" vb.). Uygulamanız sütun ve tablo adları kullanıyorsa, bu adlandırma desenleriyle çakışma olmadığından emin olun.
IDbConnection Select komutuyla ilişkili nesne geçerli olmalıdır, ancak açılması gerekmez. IDbConnection çağrılmadan önce FillSchema kapatılırsa, verileri almak için açılır ve ardından kapatılır. Bağlantı çağrılmadan önce FillSchema açıksa açık bırakılır.
Uyarı
Birden çok sonuç döndüren batch SQL deyimlerini işlerken, OLE DB için .NET Framework Veri Sağlayıcısı uygulaması FillSchema yalnızca ilk sonuç için şema bilgilerini alır. Birden çok sonuç için şema bilgilerini almak için, Fill ile değerini MissingSchemaAction olarak AddWithKeyayarlayın.
kullanırken FillSchema, SQL Server için .NET Framework Veri Sağlayıcısı yürütülmekte olan deyime for BROWSE yan tümcesi ekler. Kullanıcı, SET FMTONLY ON deyimlerinin kullanımına müdahale gibi olası yan etkilerin farkında olmalıdır. Daha fazla bilgi için bkz . SET FMTONLY (Transact-SQL).