Compartir a través de


Obtener información de esquemas a partir de una base de datos

Puede obtener información de esquemas del origen de datos mediante cualquiera de los proveedores de datos de .NET Framework. La información de esquemas de un origen de datos incluye las bases de datos y catálogos disponibles, las tablas y vistas de cada base de datos, las restricciones aplicables a las tablas en el origen de datos, etcétera.

El proveedor de datos de .NET Framework para SQL Server y el proveedor de datos de .NET Framework para ODBC exponen la información de esquemas mediante la funcionalidad suministrada por el origen de datos específico, como procedimientos almacenados y vistas informativas. Para obtener más información acerca de las vistas y los procedimientos almacenados disponibles con Microsoft SQL Server, vea la referencia de Transact-SQL que se encuentra en MSDN Library en https://msdn.microsoft.com/library.

El proveedor de datos de .NET Framework para OLE DB expone la información de esquemas mediante el método GetOleDbSchemaTable del objeto OleDbConnection. GetOleDbSchemaTable acepta como argumentos un OleDbSchemaGuid que identifica la información de esquemas que se debe devolver, junto con una matriz de restricciones aplicables a las columnas devueltas. GetOleDbSchemaTable devuelve una DataTable llena con la información de esquemas.

Para obtener información de esquemas a partir de un origen de datos, el proveedor de datos de .NET Framework para ODBC utiliza el mismo método que el proveedor de datos de .NET Framework para SQL Server.

En el ejemplo de código siguiente se devuelve una lista con todas las tablas de la base de datos Northwind. En el ejemplo del proveedor de datos de .NET Framework para SQL Server se seleccionan las tablas a partir de una vista informativa proporcionada por Microsoft SQL Server y se rellena una tabla DataTable utilizando el DataAdapter. En el ejemplo del proveedor de datos de .NET Framework para OLE DB se utiliza GetOleDbSchemaTable para devolver una tabla DataTable que contiene la información de esquemas.

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();

Vea también

Utilizar proveedores de datos de .NET Framework para obtener acceso a datos | DataTable (Clase) | OleDbConnection.GetOleDbSchemaTable (Método) | OleDbSchemaGuid (Clase)