获取架构和架构集合
适用于: .NET Framework .NET .NET Standard
Microsoft SqlClient Data Provider for SQL Server 中的 SqlConnection 类实现 GetSchema 方法,该方法用于检索与当前连接的数据库有关的架构信息,从 GetSchema 方法返回的架构信息以 DataTable 的形式传入 。 GetSchema 方法属于重载方法,提供可选的参数来指定要返回的架构集合以及限制返回的信息量。
指定架构集合
GetSchema 方法的第一个可选参数是以字符串形式指定的集合名称。 有两种类型的架构集合:所有提供程序通用的通用架构集合以及每个提供程序特定的特定架构集合。
可以通过调用没有参数或包含架构集合名称“MetaDataCollections”的 GetSchema 方法来查询 Microsoft SqlClient Data Provider for SQL Server,以确定支持的架构集合列表。 此时将返回 DataTable,包含支持的架构集合列表、每个架构集合支持的限制数以及所使用的标识符部分数。
限制架构集合示例
以下示例演示如何使用 Microsoft SqlClient Data Provider for SQL Server 的 SqlConnection 类的 GetSchema 方法来检索与 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("============================");
}
}
}