Share via


SqlCeDataReader.GetSchemaTable-Methode

Gibt eine DataTable-Klasse zurück, die die Spaltenmetadaten der SqlCeDataReader-Klasse beschreibt.

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Syntax

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

returnValue = instance.GetSchemaTable()
public override DataTable GetSchemaTable()
public:
virtual DataTable^ GetSchemaTable() override
abstract GetSchemaTable : unit -> DataTable 
override GetSchemaTable : unit -> DataTable 
public override function GetSchemaTable() : DataTable

Rückgabewert

Typ: System.Data.DataTable
Eine DataTable, die die Spaltenmetadaten beschreibt.

Implementiert

IDataReader.GetSchemaTable()

Ausnahmen

Ausnahme Bedingung
InvalidOperationException

Der Vorgang ist ungültig. Die SqlCeDataReader-Klasse ist möglicherweise hinter der letzten Zeile im Resultset positioniert.

Hinweise

Wenn SqlCeDataReader aus mehr als einer Basistabelle Spalten liest, füllt SqlCeDataReader die Schematabelle nicht mit IsKey-Werten. Dieses Verhalten ist dem Verhalten bei SELECT-Abfragen ähnlich:

SELECT FirstName, LastName, 1+2 FROM Employees  

Die Abfrage liest Spalten aus zwei verschiedenen Tabellen, der Employees-Tabelle in der Northwind-Datenbank und der temporären Tabelle, die für 1+2 erstellt wurde.

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

Schema Tabelle Spalte

Beschreibung

ColumnName

Der Name der Spalte. Dieser Name ist u. U. nicht eindeutig. Wenn der Name 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. Die Ordinalzahl beginnt mit 0 (null). SQL Server Compact unterstützt keine Lesezeichen.

ColumnSize

Die maximal mögliche Länge eines Werts in der Spalte. Bei Spalten, die einen Datentyp mit fester Länge verwenden, ist die maximale Länge die Größe des Datentyps.

NumericPrecision

Die maximale Genauigkeit der Spalte, wenn ProviderType ein numerischer Datentyp ist. Die Genauigkeit ist von der Definition der Spalte abhängig. Ein NULL-Wert, wenn ProviderType kein numerischer Datentyp ist.

NumericScale

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

IsUnique

Wenn true, dann können zwei Zeilen in dieser Spalte der Basistabelle (d. h. der als BaseTableName zurückgegebenen Tabelle) nicht den gleichen Wert aufweisen. IsUnique ist immer true, wenn die Spalte selbst einen Schlüssel darstellt oder eine Einschränkung vom Typ UNIQUE ausschließlich auf diese Spalte angewendet wird. Wenn false, dann kann die Spalte in der Basistabelle doppelte Werte enthalten. Der Standardwert dieser Spalte ist false.

IsKey

Wenn true, dann gehört die Spalte 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. Wenn false, dann ist die Spalte nicht zur eindeutigen Bezeichnung der Zeile erforderlich.

BaseColumnName

Der Name der Spalte im Datenspeicher. Der Name ist ein NULL-Wert, wenn der Name der Basisspalte nicht bestimmt werden kann oder wenn die Rowset-Spalte zwar von einer Spalte im Datenspeicher abgeleitet wurde, aber nicht mit ihr identisch ist. Der Standardwert dieser Spalte ist ein NULL-Wert.

BaseTableName

Der Name der Tabelle im Datenspeicher, die die Spalte enthält. Der Name ist 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 Zähler des Datentyps der Spalte. Diese Spalte darf keinen NULL-Wert enthalten.

IsAutoIncrement

Wenn true, weist die Spalte neuen Zeilen Werte zu, die in feststehenden Schritten erhöht werden. Wenn false, weist 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 zum Bezeichnen der Zeile sinnvoll ist.

IsLong

Wird festgelegt, wenn die Spalte ein BLOB (Binary Large Object) mit sehr umfangreichen Daten enthält.

IsReadOnly

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

Siehe auch

Verweis

SqlCeDataReader Klasse

System.Data.SqlServerCe-Namespace