DataTableReader.GetSchemaTable Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un oggetto DataTable che descrive i metadati della colonna di 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
Restituisce
Oggetto DataTable che descrive i metadati della colonna.
Eccezioni
DataTableReader è chiuso.
Esempio
Nell'esempio di applicazione console seguente vengono recuperate informazioni sullo schema sulla colonna specificata. Passare la routine a DataTableReader e un intero che rappresenta la DisplaySchemaTableInfo
posizione ordinale di una colonna all'interno DataTableReader
di e le informazioni sullo schema vengono restituite alla finestra della console.
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
Commenti
Il metodo GetSchemaTable restituisce metadati relativi a ogni colonna nell'ordine seguente:
Colonna DataReader | Descrizione |
---|---|
ColumnName | Nome della colonna visualizzata nell'oggetto DataTable. |
ColumnOrdinal | Ordinale della colonna |
ColumnSize | -1 se la proprietà (o MaxLength) dell'oggetto DataColumnColumnSize non può essere determinata o non è rilevante; in caso contrario, 0 o un intero positivo contenente il MaxLength valore. |
NumericPrecision | Se il tipo di colonna è un tipo numerico, si tratta della precisione massima della colonna. Se il tipo di colonna non è un tipo di dati numerico, si tratta di un valore Null. |
NumericScale | Se il tipo di dati della colonna ha un componente di scala, restituire il numero di cifre a destra del punto decimale. In caso contrario, restituire un valore Null. |
DataType | Tipo sottostante della colonna. |
ProviderType | Indicatore del tipo di dati della colonna. Se il tipo di dati della colonna varia da riga a riga, questo valore è Object. Questa colonna non può contenere un valore Null. |
IsLong | true se il tipo di dati della colonna è e la relativa MaxLength proprietà è String -1. In caso contrario, false . |
AllowDBNull | true se il vincolo AllowDbNull è impostato su true per la colonna; in caso contrario, false . |
IsReadOnly | true se la colonna non può essere modificata; altrimenti false . |
IsRowVersion | false , per ogni colonna. |
IsUnique | true : nessuna due righe nell'oggetto DataTable può avere lo stesso valore in questa colonna. IsUnique è garantito che sia true se la colonna rappresenta una chiave da sola o se esiste un vincolo di tipo UNIQUE che si applica solo a questa colonna. false : la colonna può contenere valori duplicati nell'oggetto DataTable . Il valore predefinito di questa colonna è false . |
IsKey | true : la colonna è una di un set di colonne che, unite, identificano in modo univoco la riga in DataTable. Il set di colonne con IsKey impostato su true deve identificare in modo univoco una riga in DataTable . Non è necessario che questo set di colonne sia un set minimo di colonne. Questo set di colonne può essere generato da una chiave primaria, da un DataTable vincolo univoco o da un indice univoco. false : la colonna non è necessaria per identificare in modo univoco la riga. Questo valore è true se la colonna partecipa a una singola chiave primaria o composita. In caso contrario, il relativo valore è false . |
IsAutoIncrement | true : la colonna assegna valori a nuove righe in incrementi fissi. false : la colonna non assegna valori alle nuove righe in incrementi fissi. Il valore predefinito di questa colonna è false . |
BaseCatalogName | Nome del catalogo nell'archivio dati contenente la colonna. Null se non è possibile determinare il nome del catalogo di base. Il valore predefinito per questa colonna è un null valore. |
BaseSchemaName | Questo valore è sempre Null . |
BaseTableName | Nome di DataTable. |
BaseColumnName | Nome della colonna in DataTable. |
AutoIncrementSeed | Valore della DataTableproprietà 's AutoIncrementSeed . |
AutoIncrementStep | Valore della DataTableproprietà 's AutoIncrementStep . |
DefaultValue | Valore della DataColumnproprietà 's DefaultValue . |
Expression | Stringa di espressione, se la colonna corrente è una colonna di espressione e tutte le colonne usate nell'espressione appartengono alla stessa T:System.Data.DataTable che contiene la colonna di espressione; in caso contrario null . |
ColumnMapping | Valore MappingType associato a DataColumn. Il tipo può essere uno di Attribute , , Hidden Element o SimpleContent . Il valore predefinito è Element . |
BaseTableNamespace | Valore della DataTableproprietà 's Namespace . |
BaseColumnNamespace | Valore della DataColumnproprietà 's Namespace . |