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.