Partager via


Collections GetSchema et Schema

S'applique à : .NET Framework .NET .NET Standard

Télécharger ADO.NET

Les classes SqlConnection du fournisseur de données Microsoft SqlClient pour SQL Server implémentent une méthode GetSchema qui sert à extraire les informations de schéma sur la base de données actuellement connectée, et les informations de schéma retournées par la méthode GetSchema se présentent sous la forme d’un DataTable. La méthode GetSchema est une méthode surchargée qui fournit des paramètres facultatifs pour spécifier la collection de schémas à retourner et limiter la quantité d’informations retournées.

Spécification des collections de schémas

Le premier paramètre facultatif de la méthode GetSchema est le nom de collection spécifié sous la forme d’une chaîne. Il y a deux types de collection de schémas : les collections de schémas communes qui sont communes à tous les fournisseurs et les collections de schémas spécifiques qui sont spécifiques à chaque fournisseur.

Vous pouvez interroger le fournisseur de données Microsoft SqlClient pour SQL Server pour établir la liste des collections de schémas prises en charge en appelant la méthode GetSchema sans argument ou avec le nom de collection de schémas « MetaDataCollections ». Cette opération retourne un DataTable avec une liste des collections de schémas prises en charge, le nombre de restrictions qu’elles prennent en charge et le nombre d’éléments d’identification qu’elles utilisent.

Exemple d’extraction de collections de schémas

Les exemples suivants montrent comment utiliser la méthode GetSchema de la classe SqlConnection du fournisseur de données Microsoft SqlClient pour SQL Server pour extraire les informations de schéma sur toutes les tables contenues dans l’exemple de base de données AdventureWorks :

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("============================");
        }
    }
}

Voir aussi