DataTableReader.GetSchemaTable Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan yang DataTable menjelaskan metadata kolom dari DataTableReader.
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
Mengembalikan
DataTable yang menjelaskan metadata kolom.
Pengecualian
Sudah DataTableReader ditutup.
Contoh
Contoh aplikasi konsol berikut mengambil informasi skema tentang kolom yang ditentukan. Teruskan DisplaySchemaTableInfo
prosedur a DataTableReader dan bilangan bulat yang mewakili posisi ordinal kolom dalam DataTableReader
, dan prosedur menghasilkan informasi skema ke jendela konsol.
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
Keterangan
Metode GetSchemaTable mengembalikan metadata tentang setiap kolom dalam urutan berikut:
Kolom DataReader | Deskripsi |
---|---|
ColumnName | Nama kolom seperti yang muncul di DataTable. |
ColumnOrdinal | Ordinal kolom |
ColumnSize | -1 jika ColumnSize properti (atau MaxLength) dari DataColumn tidak dapat ditentukan atau tidak relevan; jika tidak, 0 atau bilangan bulat positif yang berisi MaxLength nilai. |
NumericPrecision | Jika jenis kolom adalah jenis numerik, ini adalah presisi maksimum kolom. Jika jenis kolom bukan tipe data numerik, ini adalah nilai null. |
Skala Numerik | Jika jenis data kolom memiliki komponen skala, kembalikan jumlah digit di sebelah kanan titik desimal. Jika tidak, kembalikan nilai null. |
DataType | Jenis kolom yang mendasar. |
ProviderType | Indikator jenis data kolom. Jika jenis data kolom bervariasi dari baris ke baris, nilai ini adalah Object. Kolom ini tidak boleh berisi nilai null. |
IsLong | true jika jenis data kolom adalah String dan propertinya MaxLength adalah -1. Sebaliknya, false . |
AllowDBNull | true jika batasan AllowDbNull diatur ke true untuk kolom; jika tidak, false . |
IsReadOnly | true jika kolom tidak dapat dimodifikasi; jika tidak false . |
IsRowVersion | false , untuk setiap kolom. |
IsUnique | true : Tidak ada dua baris dalam DataTable dapat memiliki nilai yang sama di kolom ini. IsUnique dijamin benar jika kolom mewakili kunci dengan sendirinya atau jika ada batasan jenis UNIQUE yang hanya berlaku untuk kolom ini. false : Kolom dapat berisi nilai duplikat di DataTable . Default kolom ini adalah false . |
IsKey | true : Kolom adalah salah satu dari sekumpulan kolom yang, digabungkan, secara unik mengidentifikasi baris di DataTable. Kumpulan kolom dengan IsKey diatur ke true harus mengidentifikasi baris secara unik di DataTable . Tidak ada persyaratan bahwa kumpulan kolom ini adalah sekumpulan kolom minimal. Kumpulan kolom ini dapat dihasilkan dari DataTable kunci primer, batasan unik, atau indeks unik. false : Kolom tidak diperlukan untuk mengidentifikasi baris secara unik. Nilai ini adalah true jika kolom berpartisipasi dalam kunci primer tunggal atau komposit. Jika tidak, nilainya adalah false . |
IsAutoIncrement | true : Kolom menetapkan nilai ke baris baru dalam kenaikan tetap. false : Kolom tidak menetapkan nilai ke baris baru dalam kenaikan tetap. Default kolom ini adalah false . |
BaseCatalogName | Nama katalog di penyimpanan data yang berisi kolom . Null jika nama katalog dasar tidak dapat ditentukan. Nilai default untuk kolom ini adalah null nilai. |
BaseSchemaName | Nilai ini selalu Null . |
BaseTableName | Nama DataTable. |
BaseColumnName | Nama kolom di DataTable. |
AutoIncrementSeed | Nilai DataTableAutoIncrementSeed properti . |
AutoIncrementStep | Nilai DataTableAutoIncrementStep properti . |
DefaultValue | Nilai DataColumnDefaultValue properti . |
Ekspresi | String ekspresi, jika kolom saat ini adalah kolom ekspresi dan semua kolom yang digunakan dalam ekspresi milik yang sama T:System.Data.DataTable yang berisi kolom ekspresi; jika tidak null . |
ColumnMapping | Nilai MappingType yang DataColumnterkait dengan . Jenisnya bisa menjadi salah satu dari Attribute , Element , Hidden , atau SimpleContent . Nilai defaultnya adalah Element . |
BaseTableNamespace | Nilai DataTableNamespace properti . |
BaseColumnNamespace | Nilai DataColumnNamespace properti . |