Freigeben über


GetSchema und Schemasammlungen

Gilt für: .NET Framework .NET .NET Standard

Herunterladen von ADO.NET

Die SqlConnection-Klasse im SqlClient-Datenanbieter für SQL Server von Microsoft implementiert eine GetSchema-Methode, die zum Abrufen von Schemainformationen über die Datenbank verwendet wird, die derzeit verbunden ist. Die von der GetSchema-Methode zurückgegebenen Schemainformationen weisen das Format DataTable auf. Bei der GetSchema-Methode handelt es sich um eine überladene Methode, die optionale Parameter zum Angeben der zurückzugebenden Schemasammlung und zum Einschränken der zurückzugebenden Informationsmenge bereitstellt.

Festlegen der Schemasammlungen

Beim ersten optionalen Parameter der GetSchema-Methode handelt es sich um den Namen der Sammlung, der als Zeichenfolge angegeben wird. Es gibt zwei Arten von Schemaauflistungen: allgemeine Schemaauflistungen, die von allen Anbietern verwendet werden, und besondere Schemaauflistungen, die für jeden Anbieter spezifisch sind.

Sie können den SqlClient-Datenanbieter für SQL Server von Microsoft abfragen, um die Liste der unterstützten Schemasammlungen zu ermitteln. Rufen Sie hierzu die GetSchema-Methode ohne Argumente oder mit dem Schemasammlungsnamen „MetaDataCollections“ auf. Dadurch wird DataTable mit einer Liste der unterstützten Schemaauflistungen, der Anzahl der von diesen Schemaauflistungen unterstützten Einschränkungen und der Anzahl der von diesen Schemaauflistungen verwendeten Bezeichnerteilen zurückgegeben.

Beispiel zum Abrufen von Schemasammlungen

In den folgenden Beispielen wird veranschaulicht, wie Sie die GetSchema-Methode der SqlConnection-Klasse des SqlClient-Datenanbieters für SQL Server von Microsoft verwenden, um Schemainformationen zu allen in der Beispieldatenbank AdventureWorks enthaltenen Tabellen abzurufen:

using System;
using System.Data;
using Microsoft.Data.SqlClient;

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "Data Source = localhost; Integrated Security = true; Initial Catalog = AdventureWorks";
        
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            DataTable table = connection.GetSchema("Tables");

            // Display the contents of the table.  
            DisplayData(table);
            Console.WriteLine("Press any key to continue.");
            Console.ReadKey();
        }
    }

    private static void DisplayData(System.Data.DataTable table)
    {
        foreach (System.Data.DataRow row in table.Rows)
        {
            foreach (System.Data.DataColumn col in table.Columns)
            {
                Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
            }
            Console.WriteLine("============================");
        }
    }
}

Weitere Informationen: