Freigeben über


OleDbDataReader.GetSchemaTable-Methode

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

Namespace: System.Data.OleDb
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Overrides Function GetSchemaTable As DataTable
'Usage
Dim instance As OleDbDataReader
Dim returnValue As DataTable

returnValue = instance.GetSchemaTable
public override DataTable GetSchemaTable ()
public:
virtual DataTable^ GetSchemaTable () override
public DataTable GetSchemaTable ()
public override function GetSchemaTable () : DataTable

Rückgabewert

Eine DataTable, die die Spaltenmetadaten beschreibt.

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Der OleDbDataReader ist geschlossen.

Hinweise

Die GetSchemaTable-Methode nimmt Zuordnungen zur OLE DB-IColumnsRowset::GetColumnsRowset-Methode vor 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, der nicht unbedingt eindeutig sein muss. Wenn dieser nicht bestimmt werden kann, wird ein NULL-Wert zurückgegeben. Dieser Name stellt immer die aktuellste Benennung der Spalte in der aktuellen Sicht oder im Befehlstext dar.

ColumnOrdinal

DBCOLUMN_NUMBER

Die Ordnungszahl der Spalte. Diese ist 0 für die Lesezeichenspalte der Zeile, sofern vorhanden. Weitere Spalten werden beginnend mit 1 nummeriert. Diese Spalte darf keinen NULL-Wert enthalten.

ColumnSize

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 dem Datentyp DBTYPE_DECIMAL oder DBTYPE_NUMERIC ist von der Definition der Spalte abhängig. 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 von Ziffern rechts vom Dezimaltrennzeichen. Andernfalls ist dies ein NULL-Wert.

DataType

Keine

Wird dem .NET Framework-Typ der Spalte zugeordnet.

ProviderType

DBCOLUMN_TYPE

Der Indikator des Datentyps der Spalte. Wenn der Datentyp der Spalte in den einzelnen Zeilen unterschiedlich ist, muss dies DBTYPE_VARIANT sein. Diese Spalte darf keinen NULL-Wert enthalten.

IsLong

DBCOLUMNFLAGS_ISLONG

Der Provider legt DBCOLUMNFLAGS_ISLONG fest, wenn die Spalte ein BLOB (Binary Long Object) mit sehr umfangreichen Daten enthält. Die Definition sehr umfangreicher Daten ist anbieterabhängig. 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 Consumer die Spalte auf einen NULL-Wert festlegen kann oder wenn der Anbieter nicht bestimmen kann, ob der Consumer die Spalte auf einen NULL-Wert festlegen kann. Eine Spalte kann auch dann NULL-Werte enthalten, wenn sie nicht auf einen NULL-Wert festgelegt werden kann.

IsReadOnly

DBCOLUMNFLAGS_WRITE

true, wenn die Spalte nicht geändert werden kann, andernfalls false. Es wird davon ausgegangen, dass in die Spalte geschrieben werden kann, wenn der Provider entweder das DBCOLUMNFLAGS_WRITE-Flag oder das DBCOLUMNFLAGS_WRITEUNKNOWN-Flag festgelegt hat.

IsRowVersion

DBCOLUMNFLAGS_ISROWID

Der Provider legt DBCOLUMNFLAGS_ISROWID fest, wenn die Spalte einen persistenten Zeilenbezeichner enthält, in den nicht geschrieben werden kann und dessen Wert nur für das Bezeichnen der Zeile sinnvoll ist.

IsUnique

DBCOLUMN_ISUNIQUE

VARIANT_TRUE: In der Basistabelle (der in BaseTableName zurückgegebenen Tabelle) dürfen zwei Zeilen in dieser Spalte nicht den gleichen Wert haben. IsUnique ist immer VARIANT_TRUE, wenn die Spalte selbst einen Schlüssel darstellt oder eine Einschränkung vom Typ UNIQUE ausschließlich auf diese Spalte angewendet wird.

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 gehört zu einem Satz von Spalten im Rowset, die zusammen die Zeile eindeutig bezeichnen. Der Satz von Spalten, bei denen IsKey auf VARIANT_TRUE festgelegt ist, muss eine Zeile im Rowset eindeutig bezeichnen. Es gibt für diesen Satz von Spalten keine Anforderung für einen Mindestsatz von Spalten. Dieser Satz von Spalten kann aus dem Primärschlüssel der Basistabelle, einer Unique-Einschränkung oder einem eindeutigen Index generiert werden.

VARIANT_FALSE: Die Spalte ist für die eindeutige Bezeichnung der Zeile nicht erforderlich.

IsAutoIncrement

DBCOLUMN_ISAUTOINCREMENT

VARIANT_TRUE: Die Spalte weist neuen Zeilen Werte zu, die in feststehenden Schritten erhöht werden.

VARIANT_FALSE: Die Spalte weist neuen Zeilen keine Werte zu, die in feststehenden Schritten erhöht werden. Der Standardwert dieser Spalte ist VARIANT_FALSE.

BaseSchemaName

DBCOLUMN_BASESCHEMANAME

Der Name des Schemas im Datenspeicher, der 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 Sicht im Datenspeicher, der 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. Dieser kann sich von dem in der ColumnName-Spalte zurückgegebenen Spaltennamen unterscheiden, wenn ein Alias verwendet wurde. Ein NULL-Wert, wenn der Name der Basisspalte nicht bestimmt werden kann oder die Rowset-Spalte aus einer Spalte im Datenspeicher abgeleitet wird, jedoch nicht mit dieser identisch ist. Der Standardwert dieser Spalte ist ein NULL-Wert.

Hinweis

Sie müssen ExecuteReader mit dem auf KeyInfo festgelegten behavior-Parameter aufrufen, um sicherzustellen, dass die Metadatenspalten die richtigen Informationen zurückgeben. Andernfalls geben einige der Spalten in der Schematabelle möglicherweise Standarddaten, NULL oder fehlerhafte Daten zurück.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OleDbDataReader-Klasse
OleDbDataReader-Member
System.Data.OleDb-Namespace

Weitere Ressourcen

Arbeiten mit DataReaders