Freigeben über


SqlCeDataReader.GetSchemaTable-Methode

Hinweis: Dieser Namespace oder Member bzw. diese Klasse wird nur von .NET Framework, Version 1.1, unterstützt.

Gibt eine DataTable zurück, die die Spaltenmetadaten des SqlCeDataReader beschreibt.

Public Overridable Function GetSchemaTable() As DataTable Implements _   IDataReader.GetSchemaTable
[C#]
public virtual DataTable GetSchemaTable();
[C++]
public: virtual DataTable* GetSchemaTable();
[JScript]
public function GetSchemaTable() : DataTable;

Rückgabewert

Eine DataTable, die die Spaltenmetadaten beschreibt.

Implementiert

IDataReader.GetSchemaTable

Ausnahmen

Ausnahmetyp Bedingung
InvalidOperationException Die Operation ist ungültig. Der SqlCeDataReader ist möglicherweise hinter der letzten Zeile im Resultset positioniert.

Hinweise

Wenn SqlCeDataReader Spalten aus mehr als einer Basistabelle 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 die Zuordnung 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. SQL Server CE unterstützt keine Lesezeichen.
ColumnSize Die maximal mögliche Länge eines Wertes 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 true: In der Basistabelle (der in BaseTableName zurückgegebenen Tabelle) dürfen in dieser Spalte keine zwei Zeilen denselben Wert haben. 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. false: Die Spalte kann in der Basistabelle doppelte Werte enthalten. Der Standardwert für diese Spalte ist false.
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.
BaseColumnName Der Name der Spalte im Datenspeicher. Der Name ist 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.
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 der Provider nicht bestimmen 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. Diese Spalte darf keinen NULL-Wert enthalten.
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 für diese 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 true, wenn die Spalte geändert werden kann, andernfalls false.

Anforderungen

Plattformen: .NET Compact Framework - Windows CE .NET

.NET Framework-Sicherheit:

Siehe auch

SqlCeDataReader-Klasse | SqlCeDataReader-Member | System.Data.SqlServerCe-Namespace