連線物件的 GetSchema()
方法可以用來擷取目前連線的資料庫的結構描述資訊。結構描述資訊會以 DataTable
的形式傳回。結構描述資訊會組織成許多集合。可以使用 GetSchema()
方法的不同形式,視需要的資訊而定。GetSchema()
方法有三種形式
GetSchema()
- 這個呼叫會傳回可用的集合清單。GetSchema(String)
- 這個呼叫會傳回字串參數中指定集合的相關資訊。如果使用字串 「MetaDataCollections」,則會傳回所有可用集合的清單。這與呼叫不帶任何參數的GetSchema()
相同。GetSchema(String, String[])
- 在這個呼叫中,第一個字串參數代表集合名稱,而第二個參數代表限制值的字串陣列。限制值會限制傳回的資料量。在 Microsoft .NET 文件中會更詳細地說明限制值。
這些集合大致可以分為兩種類型:所有資料提供者共有的集合,以及特定提供者專用的集合。
通用集合。 以下集合是所有資料提供者共有的
MetaDataCollections
DataSourceInformation
DataTypes
Restrictions
ReservedWords
提供者特定的集合。 除了先前顯示的通用集合之外,以下是 Connector/NET 目前提供的集合
Databases
Tables
Columns
Users
Foreign Keys
IndexColumns
Indexes
Foreign Key Columns
UDF
Views
ViewColumns
Procedure Parameters
Procedures
Triggers
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 文件。