Freigeben über


SqlDataReader.GetSchemaTable-Methode

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

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

Syntax

'Declaration
Public Overrides Function GetSchemaTable As DataTable
'Usage
Dim instance As SqlDataReader
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 SqlDataReader ist geschlossen.

Hinweise

Die GetSchemaTable-Methode gibt Metadaten für die einzelnen Spalten in der folgenden Reihenfolge zurück:

DataReader-Spalte

Beschreibung

ColumnName

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

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

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. Für die in einer SQL Server-Datenbank gespeicherten Spalten nvarchar(MAX), varchar(MAX) und varbinary(MAX) ist die maximale Größe 2 GB. Wenn diese Spalten gespeichert und als Dateien aufgerufen werden, wird im Dateisystem die maximale Größe beachtet. Dieser Wert ändert sich, wenn in der Verbindungszeichenfolge das Schlüsselwort Type System Version verwendet wird. Für neue Typen werden sie als ältere Typen dargestellt. Die MAX-Datentypen geben den normale 4k für nvarchar und 8000 für varchar zurück. Weitere Informationen finden Sie in der Transact-SQL-Referenz in der SQL Server-Onlinedokumentation.

NumericPrecision

Wenn ProviderType einen numerischen Datentyp darstellt, ist dies die maximale Genauigkeit der Spalte. Die Genauigkeit ist von der Definition der Spalte abhängig. Wenn ProviderType kein numerischer Datentyp ist, ist dies ein NULL-Wert.

NumericScale

Wenn ProviderType DBTYPE_DECIMAL oder DBTYPE_NUMERIC ist, ist dies die Anzahl von Ziffern rechts vom Dezimaltrennzeichen. Andernfalls ist dies ein NULL-Wert.

IsUnique

true nur für timestamp-Spalten, und false für alle anderen Spalten.

IsKey

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 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.

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

BaseServerName

Der Name der vom SqlDataReader verwendeten Instanz von Microsoft SQL Server.

BaseCatalogName

Der Name des Katalogs im Datenspeicher, der die Spalte enthält. NULL, wenn der Name des Basiskatalogs nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.

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.

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.

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.

DataType

Wird dem .NET Framework-Typ der Spalte zugeordnet.

AllowDBNull

Wird festgelegt, wenn der Consumer die Spalte auf einen NULL-Wert festlegen kann oder wenn vom Anbieter nicht bestimmt werden kann, ob der Consumer die Spalte auf einen NULL-Wert festlegen kann. Wird andernfalls nicht festgelegt. Eine Spalte kann auch dann NULL-Werte enthalten, wenn sie nicht auf einen NULL-Wert festgelegt werden kann.

ProviderType

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

IsAliased

true, wenn der Spaltenname ein Alias ist, andernfalls false.

IsExpression

true, wenn die Spalte ein Ausdruck ist, andernfalls false.

IsIdentity

true, wenn die Spalte eine Identitätsspalte ist, andernfalls false.

IsAutoIncrement

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

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

IsRowVersion

Wird festgelegt, 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.

IsHidden

true, wenn die Spalte ausgeblendet ist, andernfalls false.

IsLong

Wird festgelegt, wenn die Spalte ein BLOB (Binary Large Object) mit sehr umfangreichen Daten enthält. Die Definition sehr umfangreicher Daten ist anbieterabhängig.

IsReadOnly

true, wenn die Spalte nicht geändert werden kann, andernfalls false.

ProviderSpecificDataType

Gibt den anbieterspezifischen Datentyp der Spalte basierend auf dem Schlüsselwort Type System Version in der Verbindungszeichenfolge zurück.

DataTypeName

Gibt eine Zeichenfolge zurück, die den Datentyp der angegebenen Spalte darstellt.

XmlSchemaCollectionDataBase

Der Name der Datenbank mit der Schemaauflistung für diese XML-Instanz, wenn die Zeile Informationen über eine XML-Spalte enthält. Dieser Wert ist NULL (Nothing in Visual Basic) (Nothing in Visual Basic), wenn die Auflistung in der aktuellen Datenbank definiert ist. Er ist auch dann NULL, wenn es keine Schemaauflistung gibt. In diesem Fall sind auch die XmlSchemaCollectionName-Spalte und die XmlSchemaCollectionOwningSchema-Spalte NULL.

XmlSchemaCollectionOwningSchema

Das besitzende relationale Schema mit der Schemaauflistung für diese XML-Instanz, wenn die Zeile Informationen über eine XML-Spalte enthält. Dieser Wert ist NULL (Nothing in Visual Basic) (Nothing in Visual Basic), wenn die Auflistung in der aktuellen Datenbank definiert ist. Er ist auch dann NULL, wenn es keine Schemaauflistung gibt. In diesem Fall sind auch die XmlSchemaCollectionDatabase-Spalte und die XmlSchemaCollectionName-Spalte NULL.

XmlSchemaCollectionName

Der Name der Schemaauflistung für diese XML-Instanz, wenn die Zeile Informationen über eine XML-Spalte enthält. Dieser Wert ist NULL (Nothing in Visual Basic) (Nothing in Visual Basic), wenn es keine zugeordnete Schemaauflistung gibt. Wenn der Wert NULL ist, dann sind auch die XmlSchemaCollectionDatabase-Spalte und die XmlSchemaCollectionOwningSchema-Spalte NULL.

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 CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

SqlDataReader-Klasse
SqlDataReader-Member
System.Data.SqlClient-Namespace