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