Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las Connection clases de cada uno de los proveedores administrados de .NET Framework implementan un GetSchema método que se usa para recuperar información de esquema sobre la base de datos que está conectada actualmente. La información de esquema devuelta del GetSchema método viene en forma de .DataTable El GetSchema método es un método sobrecargado que proporciona parámetros opcionales para especificar la colección de esquemas que se va a devolver y para restringir la cantidad de información devuelta.
Especificación de las colecciones de esquemas
El primer parámetro opcional del GetSchema método es el nombre de la colección que se especifica como una cadena. Existen dos tipos de colecciones de esquemas: comunes, que son comunes a todos los proveedores, y específicas, que son específicas de cada proveedor.
Puede consultar un proveedor administrado de .NET Framework para determinar la lista de colecciones de esquemas admitidas llamando al GetSchema método sin argumentos o con el nombre de colección de esquemas "MetaDataCollections". Esto devolverá una DataTable con una lista de colecciones de esquemas admitidas, el número de restricciones que admite cada una y el número de partes de identificador que emplean.
Ejemplo de recuperación de colecciones de esquemas
En los ejemplos siguientes se muestra cómo usar el GetSchema método del proveedor de datos de .NET Framework para la clase SQL Server SqlConnection para recuperar información de esquema sobre todas las tablas contenidas en la AdventureWorks base de datos de ejemplo:
Imports System.Data.SqlClient
Module Module1
Sub Main()
Dim connectionString As String = GetConnectionString()
Using connection As New SqlConnection(connectionString)
'Connect to the database then retrieve the schema information.
connection.Open()
Dim table As DataTable = connection.GetSchema("Tables")
' Display the contents of the table.
DisplayData(table)
Console.WriteLine("Press any key to continue.")
Console.ReadKey()
End Using
End Sub
Private Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file.
Return "..."
End Function
Private Sub DisplayData(ByVal table As DataTable)
For Each row As DataRow In table.Rows
For Each col As DataColumn In table.Columns
Console.WriteLine("{0} = {1}", col.ColumnName, row(col))
Next
Console.WriteLine("============================")
Next
End Sub
End Module
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Connect to the database then retrieve the schema information.
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 string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "...";
}
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("============================");
}
}
}