文档首页
MySQL Connector/NET 开发者指南
相关文档 下载本手册
PDF (US Ltr) - 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 提供的集合

  • 数据库

  • 用户

  • 外键

  • 索引列

  • 索引

  • 外键列

  • UDF

  • 视图

  • 视图列

  • 过程参数

  • 过程

  • 触发器

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 文档