Share via


Obtention des informations de schéma à partir d'une base de données

Vous pouvez obtenir des informations sur le schéma à partir de votre source de données en utilisant l'un des fournisseurs de données .NET Framework. Les informations de schéma d'une source de données regroupent les bases de données ou les catalogues disponibles à partir de la source, les tables et les vues dans une base de données, les contraintes qui existent pour les tables au niveau de la source, etc.

Les fournisseurs de données .NET Framework pour SQL Server et ODBC exposent les informations de schéma par le biais d'une fonctionnalité fournie par votre source de données (procédures stockées et vues informationnelles, par exemple). Pour plus d'informations sur les vues et les procédures stockées mises à disposition par Microsoft SQL Server, consultez la référence Transact-SQL qui se trouve sur le site MSDN Library, à l'adresse https://msdn.microsoft.com/library.

Le fournisseur de données .NET Framework pour OLE DB expose les informations de schéma à l'aide de la méthode GetOleDbSchemaTable de l'objet OleDbConnection. GetOleDbSchemaTable prend comme arguments un OleDbSchemaGuid qui identifie les informations de schéma à retourner et un tableau de restrictions sur ces colonnes retournées. GetOleDbSchemaTable retourne un DataTable rempli avec les informations de schéma.

Pour obtenir des informations de schéma à partir d'une source de données, le fournisseur .NET Framework pour ODBC utilise la même méthode que le fournisseur .NET Framework pour SQL Server.

L'exemple de code suivant retourne la liste des tables dans la base de données Northwind. L'exemple du fournisseur de données .NET Framework pour SQL Server sélectionne les tables à partir d'une vue informationnelle fournie par Microsoft SQL Server et remplit un DataTable avec un DataAdapter. L'exemple du fournisseur de données .NET Framework pour OLE DB utilise GetOleDbSchemaTable pour retourner un DataTable avec les informations de schéma.

SqlClient

Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

Dim schemaDA As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM INFORMATION_SCHEMA.TABLES " & _
                                                    "WHERE TABLE_TYPE = 'BASE TABLE' " & _
                                                    "ORDER BY TABLE_TYPE", _
                                                    nwindConn)

Dim schemaTable As DataTable = New DataTable
schemaDA.Fill(schemaTable)
[C#]
SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

SqlDataAdapter schemaDA = new SqlDataAdapter("SELECT * FROM INFORMATION_SCHEMA.TABLES " +
                                             "WHERE TABLE_TYPE = 'BASE TABLE' " +
                                             "ORDER BY TABLE_TYPE", 
                                             nwindConn);

DataTable schemaTable = new DataTable();
schemaDA.Fill(schemaTable);

OleDb

Dim nwindConn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

nwindConn.Open()
Dim schemaTable As DataTable = nwindConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
                                                             New Object() {Nothing, Nothing, Nothing, "TABLE"})
nwindConn.Close()
[C#]
OleDbConnection nwindConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

nwindConn.Open();
DataTable schemaTable = nwindConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                                                      new object[] {null, null, null, "TABLE"});
nwindConn.Close();

Voir aussi

Utilisation des fournisseurs de données .NET Framework pour l'accès aux données | DataTable, classe | OleDbConnection.GetOleDbSchemaTable, méthode | OleDbSchemaGuid, classe