Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: .NET Framework
.NET
Standard
Klasy SqlConnection w dostawcy danych Microsoft SqlClient dla programu SQL Server implementują metodę GetSchema , która służy do pobierania informacji o schemacie bazy danych, która jest obecnie połączona, a informacje o schemacie zwrócone z metody GetSchema są w postaci DataTable. Metoda GetSchema to metoda przeciążona, która udostępnia parametry opcjonalne do określania kolekcji schematów do zwrócenia i ogranicza ilość zwracanych informacji.
Określanie kolekcji schematów
Pierwszym opcjonalnym parametrem metody GetSchema jest nazwa kolekcji określona jako ciąg. Istnieją dwa typy kolekcji schematów: typowe kolekcje schematów wspólne dla wszystkich dostawców i określone kolekcje schematów specyficzne dla każdego dostawcy.
Aby określić listę obsługiwanych kolekcji schematów, możesz wysłać zapytanie do dostawcy danych Microsoft SqlClient dla programu SQL Server, wywołując metodę GetSchema bez argumentów lub z nazwą kolekcji schematu "MetaDataCollections". Spowoduje to zwrócenie DataTable obiektu z listą obsługiwanych kolekcji schematów, liczbą ograniczeń, które obsługują, oraz liczbą używanych przez nich części identyfikatorów.
Przykład pobierania kolekcji schematów
W poniższych przykładach pokazano, jak używać metody GetSchema klasy SqlConnection dostarczanej przez Microsoft SqlClient Data Provider dla SQL Server, aby pobrać informacje o schemacie wszystkich tabel zawartych w przykładowej bazie danych 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("============================");
}
}
}