Spec-Zone.ru › MySQL Connectors 1.0

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.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-programming-getschema.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API