OleDbDataReader.GetSchemaTable Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 override System.Data.DataTable? GetSchemaTable ();
public 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
Der OleDbDataReader ist geschlossen.
Hinweise
Die GetSchemaTable Methode entspricht der OLE DB IColumnsRowset::GetColumnsRowset-Methode und gibt Metadaten zu jeder Spalte in der folgenden Reihenfolge zurück:
Spalte "DataReader" | 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 maximale 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 der Spalten mit einem Datentyp von DBTYPE_DECIMAL oder DBTYPE_NUMERIC hängt von der Definition der Spalte ab. Wenn DbType kein numerischer Datentyp ist, ist dies ein Nullwert. |
NumericScale | DBCOLUMN_SCALE | Wenn DbType DBTYPE_DECIMAL oder DBTYPE_NUMERIC ist, ist dies die Anzahl der Ziffern rechts neben dem Dezimalpunkt. Andernfalls ist dies ein Nullwert. |
DataType | Keine | Karten zum .NET Framework Typ der Spalte. |
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 Binär-Long-Objekt (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, wenn der Verbraucher die Spalte auf einen Nullwert festlegen kann, oder wenn der Anbieter nicht bestimmen kann, ob der Verbraucher die Spalte auf einen Nullwert 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 angenommen, dass sie schreibbar ist, 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 beständigen Zeilenbezeichner enthält, der nicht geschrieben werden kann, und weist keinen aussagekräftigen Wert auf, außer der Identität der Zeile. |
IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE: Keine zwei Zeilen in der Basistabelle, die in BaseTableName zurückgegeben werden, kann den gleichen Wert in dieser Spalte haben. IsUnique ist garantiert VARIANT_TRUE, wenn die Spalte einen Schlüssel selbst darstellt oder wenn eine Einschränkung des Typs UNIQUE vorhanden ist, der nur für diese Spalte gilt. VARIANT_FALSE: Die Spalte kann doppelte Werte in der Basistabelle enthalten. Die Standardeinstellung dieser Spalte ist VARIANT_FALSE. |
IsKey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE: Die Spalte ist eine gruppe von Spalten im Zeilenet, die zusammengenommen werden, die die Zeile eindeutig identifizieren. Der Satz von Spalten mit IsKey, die auf VARIANT_TRUE festgelegt ist, muss eine Zeile im Rowet 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 in festen Schritten Werte zu. VARIANT_FALSE: Die Spalte weist keine Werte neuen Zeilen in festen Schritten zu. Die Standardeinstellung 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 Nullwert. |
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 Nullwert. |
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 Nullwert. |
BaseColumnName | DBCOLUMN_BASECOLUMNNAME | Der Name der Spalte im Datenspeicher. Dies unterscheidet sich möglicherweise von dem Spaltennamen, der in der Spalte "ColumnName" zurückgegeben wird, wenn ein Alias verwendet wurde. Ein Nullwert, wenn der Basisspaltenname nicht bestimmt werden kann oder wenn die Zeilensatzspalte abgeleitet wird, aber nicht identisch mit einer Spalte im Datenspeicher. Der Standardwert dieser Spalte ist ein Nullwert. |
Hinweis
Um sicherzustellen, dass Metadatenspalten die richtigen Informationen zurückgeben, müssen Sie mit dem behavior
Parametersatz auf KeyInfo
" aufrufenExecuteReader. Andernfalls gibt einige der Spalten in der Schematabelle standard-, null- oder falsche Daten zurück.