DataTableReader.GetSchemaTable 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.
sütun meta verilerini DataTableReaderaçıklayan bir DataTable döndürür.
public:
override System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable GetSchemaTable();
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
Döndürülenler
DataTable Sütun meta verilerini açıklayan.
Özel durumlar
Kapalı DataTableReader .
Örnekler
Aşağıdaki konsol uygulaması örneği, belirtilen sütunla ilgili şema bilgilerini alır. yordamını DisplaySchemaTableInfo ve DataTableReader içindeki bir sütunun DataTableReadersıra konumunu temsil eden bir tamsayı geçirin; yordam, konsol penceresine şema bilgilerini gönderir.
private static void TestGetSchemaTable()
{
// Set up the data adapter, using information from
// the AdventureWorks sample database.
// Modify the SQL expression to retrieve
// data from a different table.
SqlDataAdapter adapter =
SetupDataAdapter("SELECT * FROM Sales.Customer");
// Fill the DataTable, retrieving all the schema information.
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
DataTable table = new DataTable();
adapter.Fill(table);
// Create the DataTableReader, and close it when done.
using (DataTableReader reader = new DataTableReader(table))
{
// Modify the column number to display information
// about a column other than column 0.
DisplaySchemaTableInfo(reader, 0);
}
Console.WriteLine();
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
private static void DisplaySchemaTableInfo(
DataTableReader reader, int ordinal)
{
// Given a DataTableReader, display schema
// information about a particular column.
try
{
DataTable schemaTable = reader.GetSchemaTable();
DataRow row = schemaTable.Rows[ordinal];
foreach (DataColumn col in schemaTable.Columns)
{
Console.WriteLine("{0}: {1}",
col.ColumnName, row[col.Ordinal]);
}
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("{0} is an invalid column number.",
ordinal);
}
}
private static SqlDataAdapter SetupDataAdapter(String sqlString)
{
// Assuming all the default settings, create a
// SqlDataAdapter working with the AdventureWorks
// sample database that's available with
// SQL Server.
String connectionString =
"Data source=(local);initial catalog=AdventureWorks;" +
"Integrated Security=True";
return new SqlDataAdapter(sqlString, connectionString);
}
Private Sub TestGetSchemaTable()
' Set up the data adapter, using information from
' the AdventureWorks sample database.
' Modify the SQL expression to retrieve
' data from a different table.
Dim adapter As SqlDataAdapter = _
SetupDataAdapter("SELECT * FROM Sales.Customer")
' Fill the DataTable, retrieving all the schema information.
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim table As New DataTable
adapter.Fill(table)
' Create the DataTableReader, and close it when done.
Using reader As New DataTableReader(table)
' Modify the column number to display information
' about a column other than column 0.
DisplaySchemaTableInfo(reader, 0)
End Using
Console.WriteLine()
Console.WriteLine("Press Enter to finish.")
Console.ReadLine()
End Sub
Private Sub DisplaySchemaTableInfo( _
ByVal reader As DataTableReader, ByVal ordinal As Integer)
' Given a DataTableReader, display schema
' information about a particular column.
Try
Dim schemaTable As DataTable = reader.GetSchemaTable()
Dim row As DataRow = schemaTable.Rows(ordinal)
For Each col As DataColumn In schemaTable.Columns
Console.WriteLine("{0}: {1}", _
col.ColumnName, row(col.Ordinal))
Next
Catch ex As IndexOutOfRangeException
Console.WriteLine("{0} is an invalid column number.", _
ordinal)
End Try
End Sub
Private Function SetupDataAdapter( _
ByVal sqlString As String) As SqlDataAdapter
' Assuming all the default settings, create a SqlDataAdapter
' working with the AdventureWorks sample database that's
' available with SQL Server.
Dim connectionString As String = _
"Data Source=(local);" & _
"Initial Catalog=AdventureWorks;" & _
"Integrated Security=true"
Return New SqlDataAdapter(sqlString, connectionString)
End Function
Açıklamalar
GetSchemaTable yöntemi her sütunla ilgili meta verileri aşağıdaki sırayla döndürür:
| DataReader sütunu | Açıklama |
|---|---|
| ColumnName | sütununda göründüğü gibi sütunun DataTableadı. |
| ColumnOrdinal | Sütunun sıralı kısmı |
| Sütun Boyutu | -1 değerinin ColumnSizeDataColumn (veya MaxLength) özelliği belirlenemiyorsa veya ilgili değilse, 0 veya değeri içeren MaxLength pozitif bir tamsayı. |
| Numericprecision | Sütun türü sayısal bir türse bu, sütunun en yüksek duyarlığıdır. Sütun türü sayısal bir veri türü değilse, bu bir null değerdir. |
| Numericscale | Sütun veri türü bir ölçek bileşenine sahipse, ondalık ayırıcının sağındaki basamak sayısını döndürür. Aksi takdirde null bir değer döndürür. |
| VeriTürü | Sütunun temel türü. |
| ProviderType | Sütunun veri türünün göstergesi. Sütunun veri türü satırdan satıra değişirse, bu değer olur Object. Bu sütun null değer içeremez. |
| IsLong |
true sütunun String veri türü ve MaxLength özelliği -1 ise. Tersi durumda false. |
| Allowdbnull |
true AllowDbNull kısıtlaması sütun için true olarak ayarlanırsa; aksi takdirde , false. |
| IsReadOnly |
true sütun değiştirilemiyorsa; aksi takdirde false. |
| IsRowVersion |
false, her sütun için. |
| IsUnique |
true: içindeki DataTable iki satır bu sütunda aynı değere sahip olamaz.
IsUnique sütun tek başına bir anahtarı temsil ederse veya yalnızca bu sütun için geçerli olan UNIQUE türünde bir kısıtlama varsa, true değeri garanti edilir.
false: sütunu içinde DataTableyinelenen değerler içerebilir. Bu sütunun varsayılan değeridir false. |
| Iskey |
true: Sütun, bir araya gelen ve içindeki satırı benzersiz olarak tanımlayan bir sütun kümesidir DataTable. olarak ayarlanmış true sütun IsKey kümesinin içindeki bir satırı benzersiz olarak tanımlaması DataTablegerekir. Bu sütun kümesinin en az sayıda sütun olması gerekmez. Bu sütun kümesi birincil DataTable anahtardan, benzersiz bir kısıtlamadan veya benzersiz bir dizinden oluşturulabilir.
false: Sütunun satırı benzersiz olarak tanımlaması gerekmez. Bu değer, true sütunun tek veya bileşik bir birincil anahtara katılmasıdır. Aksi takdirde değeri şeklindedir false. |
| IsAutoIncrement |
true: Sütun, değerleri sabit artışlarla yeni satırlara atar.
false: Sütun, sabit artışlarla yeni satırlara değer atamaz. Bu sütunun varsayılan değeridir false. |
| BaseCatalogName | Sütunu içeren veri deposundaki kataloğun adı.
Null temel katalog adı belirlenemiyorsa. Bu sütun için varsayılan değer bir null değerdir. |
| BaseSchemaName | Bu değer her zaman Nullşeklindedir. |
| BaseTableName | öğesinin DataTableadı. |
| BaseColumnName | içindeki sütunun DataTableadı. |
| Autoıncrementseed | 's AutoIncrementSeed özelliğinin DataTabledeğeri. |
| Autoıncrementstep | 's AutoIncrementStep özelliğinin DataTabledeğeri. |
| Varsayılan Değer | 's DefaultValue özelliğinin DataColumndeğeri. |
| İfade | Geçerli sütun bir ifade sütunuysa ve ifadede kullanılan tüm sütunlar ifade sütununu içeren sütuna T:System.Data.DataTable aitse ifade dizesi; aksi takdirde null. |
| ColumnMapping |
MappingType ile DataColumnilişkili değer. Türü , , ElementHiddenveya SimpleContenttürlerinden biri Attributeolabilir. Varsayılan değer Element değeridir. |
| BaseTableNamespace | 's Namespace özelliğinin DataTabledeğeri. |
| BaseColumnNamespace | 's Namespace özelliğinin DataColumndeğeri. |