DataTableReader.GetSchemaTable Yöntem

Tanım

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

Örnekler

Aşağıdaki konsol uygulaması örneği, belirtilen sütun hakkındaki şema bilgilerini alır. yordamını DisplaySchemaTableInfo ve DataTableReader içindeki DataTableReaderbir 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 DataTableyinelenen 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ı 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ı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 , , ElementHiddenveya SimpleContenttüründen Attributebiri olabilir. Element varsayılan değerdir.
BaseTableNamespace 's Namespace özelliğinin DataTabledeğeri.
BaseColumnNamespace 's Namespace özelliğinin DataColumndeğeri.

Şunlara uygulanır