Freigeben über


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
public DataTable GetSchemaTable ()
public override function GetSchemaTable () : DataTable

Rückgabewert

Eine DataTable-Klasse, die die Spaltenmetadaten beschreibt.

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Die Operation ist ungültig. Die SqlCeDataReader-Klasse 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 wird der OLE DB IColumnsRowset::GetColumnsRowset-Methode zugeordnet und gibt Metadaten über jede 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 (Nothing in Visual Basic)-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 Mobile 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 (Nothing in Visual Basic)-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 (Nothing in Visual Basic)-Wert.

IsUnique

Wenn true, dann ist es nicht möglich, dass zwei Zeilen in dieser Spalte der Basistabelle (d. h. der als BaseTableName zurückgegebenen Tabelle) denselben 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 doppelte Werte in der Basistabelle 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 für die eindeutige Bezeichnung der Zeile nicht erforderlich.

BaseColumnName

Der Name der Spalte im Datenspeicher. Der Name ist ein NULL (Nothing in Visual Basic)-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 NULL (Nothing in Visual Basic).

BaseTableName

Der Name der Tabelle im Datenspeicher, die die Spalte enthält. Der Name ist ein NULL (Nothing in Visual Basic)-Wert, wenn der Name der Basistabelle nicht bestimmt werden kann. Der Standardwert dieser Spalte ist NULL (Nothing in Visual Basic).

DataType

Wird dem .NET Framework-Typ der Spalte zugeordnet

AllowDBNull

Wird festgelegt, wenn der Consumer die Spalte auf einen NULL (Nothing in Visual Basic)-Wert festlegen kann oder wenn der Anbieter nicht bestimmen kann, ob der Consumer die Spalte auf einen NULL (Nothing in Visual Basic)-Wert festlegen kann. Wird andernfalls nicht festgelegt. Eine Spalte kann auch dann NULL (Nothing in Visual Basic)-Werte enthalten, wenn sie eigentlich nicht auf einen NULL (Nothing in Visual Basic)-Wert festgelegt werden kann.

ProviderType

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

.NET Framework-Sicherheit

  • Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .

Plattformen

Windows CE, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows XP Professional x64 Edition, Windows XP SP2

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

Versionsinformationen

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

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