OleDbConnection.GetOleDbSchemaTable-Methode
Gibt Schemainformationen aus einer Datenquelle entsprechend den Angaben einer GUID zurück und wendet anschließend die angegebenen Einschränkungen an.
Namespace: System.Data.OleDb
Assembly: System.Data (in system.data.dll)
Syntax
'Declaration
Public Function GetOleDbSchemaTable ( _
schema As Guid, _
restrictions As Object() _
) As DataTable
'Usage
Dim instance As OleDbConnection
Dim schema As Guid
Dim restrictions As Object()
Dim returnValue As DataTable
returnValue = instance.GetOleDbSchemaTable(schema, restrictions)
public DataTable GetOleDbSchemaTable (
Guid schema,
Object[] restrictions
)
public:
DataTable^ GetOleDbSchemaTable (
Guid schema,
array<Object^>^ restrictions
)
public DataTable GetOleDbSchemaTable (
Guid schema,
Object[] restrictions
)
public function GetOleDbSchemaTable (
schema : Guid,
restrictions : Object[]
) : DataTable
Parameter
- schema
Einer der OleDbSchemaGuid-Werte, der die zurückzugebende Schematabelle angibt.
- restrictions
Ein Object-Array von Einschränkungswerten. Diese werden in der Reihenfolge der Einschränkungsspalten angewendet. Das heißt, dass der erste Einschränkungswert auf die erste Einschränkungsspalte, der zweite Einschränkungswert auf die zweite Einschränkungsspalte angewendet wird usw.
Rückgabewert
Eine DataTable mit den angeforderten Schemainformationen.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Die angegebene Gruppe von Einschränkungen ist ungültig. |
|
Die OleDbConnection ist geschlossen. |
|
Das angegebene Schemarowset wird vom OLE DB-Provider nicht unterstützt. - oder - Der schema-Parameter enthält einen Wert von DbInfoLiterals, und der restrictions-Parameter enthält eine oder mehrere Einschränkungen. |
Hinweise
Die Schematabelle wird als DataTable zurückgegeben, die dasselbe Format aufweist wie das im schema-Parameter angegebene OLE DB-Schemarowset. Mit dem restrictions-Parameter filtern Sie die in die DataTable zurückzugebenden Zeilen (z. B. durch Angabe von Einschränkungen für Tabellenname, Typ, Eigentümer oder Schema). Wenn Sie Werte im Array übergeben, müssen leere Zeichenfolgen oder NULL für Arrayelemente, die keine Werte enthalten, ebenfalls übergeben werden. Wenn Sie an restrictions ein leeres Array übergeben, werden sämtliche Zeilen (eine für jede Tabelle) in der Standardreihenfolge zurückgegeben. Werte im Array entsprechen der Reihenfolge der Spalten in der Quelltabelle und der DataTable. Jedes Element im Einschränkungsarray wird mit dem Inhalt der entsprechenden Spalte im Schemarowset verglichen. Das erste Element im Einschränkungsarray wird beispielsweise mit der ersten Spalte im Rowset verglichen. Wenn ein Einschränkungselement nicht NULL ist, werden der resultierenden DataTable nur jene Zeilen aus den Schemarowset hinzugefügt, die genau mit dem Wert der Einschränkung übereinstimmen.
Die OleDbConnection-Methode ruft die zugrunde liegende OLE DB IDBSchemaRowset::GetRowset-Methode unter Verwendung der Standardkonvertierungsregeln der Common Language Runtime auf. Weitere Informationen finden Sie unter COM-Datentypen.
Sie können Informationen über Literale abrufen, indem Sie DbInfoLiterals verwenden. Dort stehen Informationen zur Verfügung, die einem Aufruf der OLE DB-IDBInfo::GetLiteralInfo-Schnittstelle oder der ADO-Connection.OpenSchema-Methode mit der adSchemaDBInfoLiterals-Konstante entsprechen.
Beispiel
Im folgenden Beispiel wird eine Liste von Tabellen in einer Datenbank zurückgegeben.
Public Function GetSchemaTable(ByVal connectionString As String) _
As DataTable
Using connection As New OleDbConnection(connectionString)
connection.Open()
Dim schemaTable As DataTable = _
connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
Return schemaTable
End Using
End Function
static DataTable GetSchemaTable(string connectionString)
{
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open();
DataTable schemaTable = connection.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
return schemaTable;
}
using System;
using System.Data;
using System.Data.OleDb;
class Class1
{
static void Main()
{
string x = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI";
GetSchemaTable(x);
Console.ReadLine();
}
static DataTable GetSchemaTable(string connectionString)
{
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open();
DataTable schemaTable = connection.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
return schemaTable;
}
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, 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
Siehe auch
Referenz
OleDbConnection-Klasse
OleDbConnection-Member
System.Data.OleDb-Namespace