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 einen DataTable Wert zurück, der die Spaltenmetadaten der OleDbDataReader.
public:
virtual System::Data::DataTable ^ GetSchemaTable();
public:
override System::Data::DataTable ^ GetSchemaTable();
public System.Data.DataTable GetSchemaTable();
public override System.Data.DataTable GetSchemaTable();
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Function GetSchemaTable () As DataTable
Public Overrides Function GetSchemaTable () As DataTable
Gibt zurück
Eine DataTable , die die Spaltenmetadaten beschreibt.
Implementiert
Ausnahmen
Das OleDbDataReader ist geschlossen.
Hinweise
Die GetSchemaTable Methode ist der OLE DB IColumnsRowset::GetColumnsRowset-Methode zugeordnet und gibt Metadaten zu jeder Spalte in der folgenden Reihenfolge zurück:
| DataReader-Spalte | OLE DB-Spalten-ID | Description |
|---|---|---|
| ColumnName | DBCOLUMN_NAME | Der Name der Spalte; dies ist möglicherweise nicht eindeutig. Wenn dies nicht bestimmt werden kann, wird ein NULL-Wert zurückgegeben. Dieser Name spiegelt immer die letzte Umbenennung der Spalte in der aktuellen Ansicht oder dem Befehlstext wider. |
| ColumnOrdinal | DBCOLUMN_NUMBER | Die nullbasierte Ordnungszahl der Spalte. Diese Spalte darf keinen NULL-Wert enthalten. |
| Spaltengröße | DBCOLUMN_COLUMNSIZE | Die maximal mögliche Länge eines Werts in der Spalte. Bei 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 einem Datentyp von DBTYPE_DECIMAL oder DBTYPE_NUMERIC hängt von der Definition der Spalte ab. Wenn DbType kein numerischer Datentyp ist, handelt es sich um einen Nullwert. |
| NumericScale | DBCOLUMN_SCALE | Wenn DbType DBTYPE_DECIMAL oder DBTYPE_NUMERIC ist, ist dies die Anzahl der Ziffern rechts neben dem Dezimalkomma. Andernfalls ist dies ein Nullwert. |
| Datentyp | Nichts | Ordnet den .NET Typ der Spalte zu. |
| ProviderType | DBCOLUMN_TYPE | Der Indikator des Datentyps der Spalte. Wenn der Datentyp der Spalte von Zeile zu Zeile variiert, muss dies DBTYPE_VARIANT sein. Diese Spalte darf 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 von sehr langen Daten 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 Nullwert festlegen kann oder ob der Anbieter nicht ermitteln kann, ob der Consumer die Spalte auf einen Nullwert festlegen kann. Eine Spalte kann Nullwerte enthalten, auch wenn sie nicht auf einen Nullwert 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, der nicht geschrieben werden kann, und hat keinen aussagekräftigen Wert außer der Identität der Zeile. |
| IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE: Keine zwei Zeilen in der Basistabelle, die in BaseTableName zurückgegeben wird, können den gleichen Wert in dieser Spalte aufweisen. IsUnique ist garantiert VARIANT_TRUE, wenn die Spalte einen Schlüssel selbst 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. Die Standardeinstellung dieser Spalte ist VARIANT_FALSE. |
| Iskey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE: Die Spalte ist einer der Spalten im Rowset, die die Zeile eindeutig identifizieren. Der Satz von Spalten mit IsKey auf VARIANT_TRUE muss eine Zeile im Rowset eindeutig identifizieren. Es ist nicht erforderlich, dass dieser Satz von Spalten ein minimaler Satz von Spalten ist. Dieser Satz von Spalten kann aus einem Basistabellen-Primärschlüssel, einer eindeutigen Einschränkung oder einem eindeutigen Index generiert 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 neuen Zeilen in festen Schritten keine Werte zu. Die Standardeinstellung dieser Spalte ist VARIANT_FALSE. |
| BaseSchemaName | DBCOLUMN_BASESCHEMANAME | Der Name des Schemas im Datenspeicher, der die Spalte enthält. Ein NULL-Wert, wenn der Basisschemaname 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 Basiskatalogname 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 Basistabellenname nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein Nullwert. |
| 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 ist, jedoch nicht identisch mit einer Spalte im Datenspeicher. Der Standardwert dieser Spalte ist ein Nullwert. |
Note
Um sicherzustellen, dass Metadatenspalten die richtigen Informationen zurückgeben, müssen Sie den Parameter aufrufenExecuteReader, auf KeyInfoden behavior sie festgelegt ist. Andernfalls geben einige spalten in der Schematabelle möglicherweise Standard-, NULL- oder falsche Daten zurück.