连接对象的GetSchema()
方法可用于检索有关当前连接的数据库的模式信息。架构信息以DataTable
. 模式信息被组织成许多集合。GetSchema()
根据所需的信息,可以使用不同形式的
方法。该方法有以下三种形式
GetSchema()
:
GetSchema()
- 此调用将返回可用集合的列表。GetSchema(String)
- 此调用返回有关在字符串参数中命名的集合的信息。如果使用字符串“ MetaDataCollections ”,则返回所有可用集合的列表。GetSchema()
这与不带任何参数 的调用相同。GetSchema(String, String[])
- 在此调用中,第一个字符串参数表示集合名称,第二个参数表示限制值的字符串数组。限制值限制将返回的数据量。Microsoft .NET 文档中对限制值进行了更详细的解释 。
集合可以大致分为两种类型:所有数据提供者共有的集合,以及特定提供者特定的集合。
常见的集合。 以下集合对所有数据提供者都是通用的:
元数据集合
数据源信息
数据类型
限制
保留字
提供者特定的集合。 以下是 Connector/NET 当前提供的集合,以及前面显示的常见集合:
数据库
表
列
用户
外键
索引列
索引
外键列
自定义函数
观点
查看列
程序参数
程序
触发器
C# 代码示例。 可以使用以下代码获取可用集合的列表:
using System;
using System.Data;
using System.Text;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace ConsoleApplication2
{
class Program
{
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("============================");
}
}
static void Main(string[] args)
{
string connStr = "server=localhost;user=root;database=world;port=3306;password=******";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
Console.WriteLine("Connecting to MySQL...");
conn.Open();
DataTable table = conn.GetSchema("MetaDataCollections");
//DataTable table = conn.GetSchema("UDF");
DisplayData(table);
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.WriteLine("Done.");
}
}
}
有关GetSchema()
方法和架构集合
的更多信息,请参见Microsoft .NET 文档。