Freigeben über


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

OleDbException

Die angegebene Gruppe von Einschränkungen ist ungültig.

InvalidOperationException

Die OleDbConnection ist geschlossen.

ArgumentException

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

Weitere Ressourcen

Herstellen von Verbindungen zu Datenquellen