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 bir.
Özel durumlar
Kapalı DataTableReader .
Örnekler
Aşağıdaki konsol uygulaması örneği, belirtilen sütun hakkındaki şema bilgilerini alır. yordamını DisplaySchemaTableInfo
ve DataTableReader içindeki DataTableReader
bir sütunun sıralı konumunu temsil eden bir tamsayı geçirin; yordam, şema bilgilerini konsol penceresine 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 | Description |
---|---|
ColumnName | sütununda göründüğü gibi sütunun DataTableadı. |
ColumnOrdinal | Sütunun sıralı |
Columnsize | değerinin ColumnSizeDataColumn (veya ) özelliği belirlenemiyorsa veya MaxLengthilgili değilse-1; aksi takdirde, değeri içeren MaxLength 0 veya 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. |
DataType | Sütunun temel alınan 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 veri türü ve StringMaxLength ö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 hiçbir satır bu sütunda aynı değere sahip olamaz. IsUnique sütun tek başına bir anahtarı temsil ediyorsa veya yalnızca bu sütun için geçerli olan UNIQUE türünde bir kısıtlama varsa doğru olması garanti edilir. false : sütunu içinde DataTable yinelenen değerler içerebilir. Bu sütunun varsayılan değeridir false . |
Iskey | true : Sütun, birlikte alınan 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ı DataTable gerekir. 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ılmış olmasıdır. Aksi takdirde değeri olur 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ütunun varsayılan değeri bir null değerdir. |
BaseSchemaName | Bu değer her zaman Null şeklindedir. |
Basetablename | DataTable öğesinin adı. |
BaseColumnName | içindeki sütunun DataTableadı. |
Autoıncrementseed | 's AutoIncrementSeed özelliğinin DataTabledeğeri. |
Autoıncrementstep | 's AutoIncrementStep özelliğinin DataTabledeğeri. |
DefaultValue | 's DefaultValue özelliğinin DataColumndeğeri. |
Expression | 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 , , Element Hidden veya SimpleContent türünden Attribute biri olabilir. Element varsayılan değerdir. |
BaseTableNamespace | 's Namespace özelliğinin DataTabledeğeri. |
BaseColumnNamespace | 's Namespace özelliğinin DataColumndeğeri. |