Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Классы Connection в каждом управляемом поставщике .NET Framework реализуют метод GetSchema, который используется для получения информации о схеме текущей подключенной базы данных. Сведения о схеме, возвращаемые методом GetSchema, представлены в виде DataTable. Этот GetSchema метод является перегруженным методом, предоставляющим необязательные параметры для указания возвращаемой коллекции схем и ограничения объема возвращаемой информации.
Определение коллекций схем
Первым необязательным параметром GetSchema метода является имя коллекции, указанное в виде строки. Существует два типа коллекций схем: стандартные (общие для всех поставщиков) и специальные (определенные для каждого поставщика).
Вы можете запросить управляемого поставщика .NET Framework, чтобы определить список поддерживаемых коллекций схем, вызвав GetSchema метод без аргументов или с именем коллекции схем MetaDataCollections. Будет возвращен DataTable со списком поддерживаемых коллекций схем, с указанием количества ограничений, которые каждая из них поддерживает, и количества идентификационных частей, которые они используют.
Пример получения коллекций схем
В следующих примерах показано, как использовать метод GetSchema от поставщика данных .NET Framework для класса SQL Server SqlConnection, чтобы получить информацию о схеме всех таблиц, содержащихся в базе данных-образце AdventureWorks.
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("============================");
}
}
}