文件首頁
MySQL Connector/NET 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.3MB
PDF (A4) - 1.3MB


MySQL Connector/NET 開發人員指南  /  Connector/NET 程式設計  /  在連線上使用 GetSchema

5.1 在連線上使用 GetSchema

連線物件的 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 文件