Spec-Zone .ru
спецификации, руководства, описания, API
|
MySqlConnection
объект конфигурируется, используя строку подключения. Строка
подключения содержит несколько пар ключ/значение, разделенных точками с запятой. В каждой паре ключ/значение к
имени опции и его соответствующему значению присоединяется знак "равно". Для списка имен опции, чтобы
использовать в строке подключения, см. Раздел
22.2.6, "Ссылка Опций Строки подключения Соединителя/Сети".
Следующее является демонстрационной строкой подключения:
Server=127.0.0.1;Uid=root;Pwd=12345;Database=test;
В этом примере, MySqlConnection
объект конфигурируется, чтобы соединиться с
сервером MySQL в 127.0.0.1
, с именем пользователя root
и пароль 12345
. База данных значения по умолчанию для всех операторов будет test
база данных.
Используя символ для параметров является теперь привилегированным подходом, хотя старый образец
использования'?' все еще поддерживается. Чтобы избежать конфликтов при использовании символ в комбинации с
пользовательскими переменными, см. Allow User Variables
опция строки
подключения в Разделе 22.2.6, "Ссылка
Опций Строки подключения Соединителя/Сети". Old Syntax
опция
строки подключения была теперь осуждена.
Как только Вы создали строку подключения, она может использоваться, чтобы открыть соединение с сервером MySQL.
Следующий код используется, чтобы создать a MySqlConnection
возразите,
присвойте строку подключения, и откройте соединение.
Соединитель/Сеть может также соединить использование собственного плагина аутентификации Windows. См. Раздел 22.2.5.5, "Используя Windows Native Authentication Plugin" для деталей.
Можно далее расширить механизм аутентификации при записи Вашего собственного плагина аутентификации. См. Раздел 22.2.5.6, "Пишущий Пользовательский Плагин Аутентификации" для деталей.
Dim conn As New MySql.Data.MySqlClient.MySqlConnectionDim myConnectionString as StringmyConnectionString = "server=127.0.0.1;" _ & "uid=root;" _ & "pwd=12345;" _ & "database=test;"Try conn.ConnectionString = myConnectionString conn.Open()Catch ex As MySql.Data.MySqlClient.MySqlException MessageBox.Show(ex.Message)End Try
MySql.Data.MySqlClient.MySqlConnection conn;string myConnectionString;myConnectionString = "server=127.0.0.1;uid=root;" + "pwd=12345;database=test;";try{ conn = new MySql.Data.MySqlClient.MySqlConnection(); conn.ConnectionString = myConnectionString; conn.Open();}catch (MySql.Data.MySqlClient.MySqlException ex){ MessageBox.Show(ex.Message);}
Можно также передать строку подключения конструктору MySqlConnection
class:
Dim myConnectionString as StringmyConnectionString = "server=127.0.0.1;" _ & "uid=root;" _ & "pwd=12345;" _ & "database=test;"Try Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString) conn.Open()Catch ex As MySql.Data.MySqlClient.MySqlException MessageBox.Show(ex.Message)End Try
MySql.Data.MySqlClient.MySqlConnection conn;string myConnectionString;myConnectionString = "server=127.0.0.1;uid=root;" + "pwd=12345;database=test;";try{ conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString); conn.Open();}catch (MySql.Data.MySqlClient.MySqlException ex){ MessageBox.Show(ex.Message);}
Как только соединение открыто, оно может использоваться другими классами Соединителя/Сети, чтобы связаться с сервером MySQL.
Поскольку соединение с внешним сервером непредсказуемо, важно добавить обработку ошибок к Вашему
приложению.NET. Когда есть ошибка, соединяясь, MySqlConnection
class возвратит
a MySqlException
объект. У этого объекта есть два свойства, которые
представляют интерес когда ошибки из-за неправильного обращения:
Message
: Сообщение, которое описывает текущее
исключение.
Number
: Код ошибки MySQL.
Когда ошибки из-за неправильного обращения, Вы можете ответ своего приложения, основанный на коде ошибки. Два наиболее распространенных кода ошибки, соединяясь следующие:
0
: Не может соединиться с сервером.
1045
: Недопустимое имя пользователя и/или пароль.
Следующий код показывает, как адаптировать ответ приложения, основанный на фактической ошибке:
Dim myConnectionString as StringmyConnectionString = "server=127.0.0.1;" _ & "uid=root;" _ & "pwd=12345;" _ & "database=test;"Try Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString) conn.Open()Catch ex As MySql.Data.MySqlClient.MySqlException Select Case ex.Number Case 0 MessageBox.Show("Cannot connect to server. Contact administrator") Case 1045 MessageBox.Show("Invalid username/password, please try again") End SelectEnd Try
MySql.Data.MySqlClient.MySqlConnection conn;string myConnectionString;myConnectionString = "server=127.0.0.1;uid=root;" + "pwd=12345;database=test;";try{ conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString); conn.Open();} catch (MySql.Data.MySqlClient.MySqlException ex){ switch (ex.Number) { case 0: MessageBox.Show("Cannot connect to server. Contact administrator"); case 1045: MessageBox.Show("Invalid username/password, please try again"); }}
Отметьте, что, если Вы используете многоязыковые базы данных, следует определить набор символов
в строке подключения. Если Вы не определяете набор символов, значения по умолчанию соединения к latin1
набор символов. Можно определить набор символов как часть строки
подключения, например:
MySqlConnection myConnection = new MySqlConnection("server=127.0.0.1;uid=root;" +"pwd=12345;database=test;Charset=latin1;");
GetSchema()
метод объекта соединения может использоваться, чтобы получить
информацию о схеме о базе данных, в настоящий момент соединенной с. Информация о схеме возвращается в форме
a DataTable
. Информация о схеме организуется во многие наборы. Различные формы
GetSchema()
метод может использоваться в зависимости от запрошенной информации.
Есть три формы GetSchema()
метод:
GetSchema()
- Этот вызов возвратит список доступных
наборов.
GetSchema(String)
- Это звонит информации о
возвратах по поводу набора, названного в строковом параметре. Если строка "MetaDataCollections" используется тогда, список всех
доступных наборов возвращается. Это - то же самое как вызов GetSchema()
без любых параметров.
GetSchema(String, String[])
- В этом вызове первый
строковый параметр представляет имя набора, и второй параметр представляет строковый массив значений
ограничения. Значения ограничения ограничивают объем данных, который будет возвращен. Значения
ограничения объясняются более подробно в
Наборы могут быть широко сгруппированы в два типа: наборы, которые характерны для всех провайдеров данных, и наборов, определенных для определенного провайдера.
Распространенный
Следующие наборы характерны для всех провайдеров данных:
MetaDataCollections
DataSourceInformation
DataTypes
Ограничения
ReservedWords
Специфичный для провайдера
Следующее является наборами, в настоящий момент обеспеченными MySQL, Connector/Net, в дополнение к общим наборам выше:
Базы данных
Таблицы
Столбцы
Пользователи
Внешние ключи
IndexColumns
Индексирует
Столбцы Внешнего ключа
UDF
Представления
ViewColumns
Параметры процедуры
Процедуры
Триггеры
Пример кода
Список доступных наборов может быть получен, используя следующий код:
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()
метод и наборы схемы могут быть
найдены в