Teilen über


OleDbDataReader.GetSchemaTable Methode

Definition

Gibt eine DataTable zurück, die die Spaltenmetadaten des OleDbDataReader beschreibt.

public:
 override System::Data::DataTable ^ GetSchemaTable();
public:
 virtual System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable? GetSchemaTable ();
public System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.DataTable
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
Public Function GetSchemaTable () As DataTable

Gibt zurück

Eine DataTable, die die Spaltenmetadaten beschreibt.

Implementiert

Ausnahmen

Hinweise

Die GetSchemaTable -Methode wird der OLE DB-Methode IColumnsRowset::GetColumnsRowset zugeordnet und gibt Metadaten zu jeder Spalte in der folgenden Reihenfolge zurück:

DataReader-Spalte OLE DB-Spalten-ID BESCHREIBUNG
ColumnName DBCOLUMN_NAME Der Name der Spalte; Dies ist möglicherweise nicht eindeutig. Wenn sie nicht bestimmt werden kann, wird ein NULL-Wert zurückgegeben. Dieser Name gibt den aktuellen Stand der Umbenennung der Spalte im aktuellen Ansichts- oder Befehlstext wieder.
ColumnOrdinal DBCOLUMN_NUMBER Die nullbasierte Ordnungszahl der Spalte. Diese Spalte kann keinen NULL-Wert enthalten.
ColumnSize DBCOLUMN_COLUMNSIZE Die maximal mögliche Länge eines Werts in der Spalte. Für Spalten, die einen Datentyp mit fester Länge verwenden, ist dies die Größe des Datentyps.
NumericPrecision DBCOLUMN_PRECISION Wenn DbType ein numerischer Datentyp ist, ist dies die maximale Genauigkeit der Spalte. Die Genauigkeit von Spalten mit dem Datentyp DBTYPE_DECIMAL oder DBTYPE_NUMERIC hängt von der Definition der Spalte ab. Wenn DbType kein numerischer Datentyp ist, ist dies ein NULL-Wert.
NumericScale DBCOLUMN_SCALE Wenn DbType DBTYPE_DECIMAL oder DBTYPE_NUMERIC ist, ist dies die Anzahl der Ziffern rechts neben dem Dezimaltrennzeichen. Andernfalls ist dies ein NULL-Wert.
DataType Keine Wird dem .NET Framework Typ der Spalte zugeordnet.
ProviderType DBCOLUMN_TYPE Der Zähler des Datentyps der Spalte. Wenn der Datentyp der Spalte von Zeile zu Zeile variiert, muss dies DBTYPE_VARIANT sein. Diese Spalte kann keinen NULL-Wert enthalten.
IsLong DBCOLUMNFLAGS_ISLONG Der Anbieter legt DBCOLUMNFLAGS_ISLONG fest, wenn die Spalte ein Binary Long Object (BLOB) enthält, das sehr lange Daten enthält. Die Definition dessen, was als sehr umfangreiche Daten gilt, ist anbieterspezifisch. Die Einstellung dieses Flags entspricht dem Wert der IS_LONG Spalte im PROVIDER_TYPES Rowset für den Datentyp.
AllowDBNull DBCOLUMNFLAGS_ISNULLABLE Der Anbieter legt DBCOLUMNFLAGS_ISNULLABLE fest, ob der Consumer die Spalte auf einen NULL-Wert festlegen kann oder ob der Anbieter nicht ermitteln kann, ob der Consumer die Spalte auf einen NULL-Wert festlegen kann. Eine Spalte kann NULL-Werte enthalten, auch wenn sie nicht auf einen NULL-Wert festgelegt werden kann.
IsReadOnly DBCOLUMNFLAGS_WRITE true , wenn die Spalte nicht geändert werden kann; andernfalls false. Die Spalte wird als schreibbar angenommen, wenn der Anbieter entweder das DBCOLUMNFLAGS_WRITE- oder DBCOLUMNFLAGS_WRITEUNKNOWN-Flag festgelegt hat.
IsRowVersion DBCOLUMNFLAGS_ISROWID Der Anbieter legt DBCOLUMNFLAGS_ISROWID fest, wenn die Spalte einen persistenten Zeilenbezeichner enthält, in den nicht geschrieben werden kann, und keinen aussagekräftigen Wert außer zur Identität der Zeile hat.
IsUnique DBCOLUMN_ISUNIQUE VARIANT_TRUE: In dieser Spalte können keine zwei Zeilen in der Basistabelle , die in BaseTableName zurückgegebene Tabelle, denselben Wert aufweisen. IsUnique wird garantiert VARIANT_TRUE, wenn die Spalte selbst einen Schlüssel darstellt oder wenn eine Einschränkung vom Typ UNIQUE vorhanden ist, die nur für diese Spalte gilt.

VARIANT_FALSE: Die Spalte kann doppelte Werte in der Basistabelle enthalten. Der Standardwert dieser Spalte ist VARIANT_FALSE.
IsKey DBCOLUMN_KEYCOLUMN VARIANT_TRUE: Die Spalte ist eine aus einer Reihe von Spalten im Rowset, die zusammen die Zeile eindeutig identifizieren. Der Spaltensatz, für den IsKey auf VARIANT_TRUE festgelegt ist, muss eine Zeile im Rowset eindeutig identifizieren. Es ist nicht erforderlich, dass es sich bei dieser Menge Spalten um eine minimale Spaltenmenge handelt. Diese Spaltenmenge kann aus einem Primärschlüssel der Basistabelle, einer eindeutigen Bedingung oder einem eindeutigen Index gebildet werden.

VARIANT_FALSE: Die Spalte ist nicht erforderlich, um die Zeile eindeutig zu identifizieren.
IsAutoIncrement DBCOLUMN_ISAUTOINCREMENT VARIANT_TRUE: Die Spalte weist neuen Zeilen werte in festen Schritten zu.

VARIANT_FALSE: Die Spalte weist neuen Zeilen in festen Schritten keine Werte zu. Der Standardwert dieser Spalte ist VARIANT_FALSE.
BaseSchemaName DBCOLUMN_BASESCHEMANAME Der Name des Schemas im Datenspeicher, das die Spalte enthält. Ein NULL-Wert, wenn der Name des Basisschemas nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.
BaseCatalogName DBCOLUMN_BASECATALOGNAME Der Name des Katalogs im Datenspeicher, der die Spalte enthält. Ein NULL-Wert, wenn der Name des Basiskatalogs nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.
BaseTableName DBCOLUMN_BASETABLENAME Der Name der Tabelle oder Ansicht im Datenspeicher, die die Spalte enthält. Ein NULL-Wert, wenn der Name der Basistabelle nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.
BaseColumnName DBCOLUMN_BASECOLUMNNAME Der Name der Spalte im Datenspeicher. Dies kann sich von dem Spaltennamen unterscheiden, der in der Spalte ColumnName zurückgegeben wird, wenn ein Alias verwendet wurde. Ein NULL-Wert, wenn der Name der Basisspalte nicht bestimmt werden kann oder wenn die Rowsetspalte abgeleitet, aber nicht identisch mit einer Spalte im Datenspeicher ist. Der Standardwert dieser Spalte ist ein NULL-Wert.

Hinweis

Um sicherzustellen, dass Metadatenspalten die richtigen Informationen zurückgeben, müssen Sie aufrufen ExecuteReader , wobei der behavior Parameter auf KeyInfofestgelegt ist. Andernfalls geben einige Spalten in der Schematabelle möglicherweise standard-, NULL- oder falsche Daten zurück.

Gilt für:

Weitere Informationen