4.3 Обработка ошибок соединения
Поскольку подключение к внешнему серверу непредсказуемо, важно добавить обработку ошибок в ваше приложение .NET. При возникновении ошибки подключения класс MySqlConnection вернет объект MySqlException. Этот объект имеет две свойства, которые важны при обработке ошибок:
Message: Сообщение, описывающее текущее исключение.Number: Номер ошибки MySQL.
При обработке ошибок вы можете адаптировать ответ вашего приложения в зависимости от номера ошибки. Два наиболее распространенных номера ошибок при подключении следующие:
0: Невозможно подключиться к серверу.1045: Неверный логин, пароль пользователя или оба.
Следующий пример кода демонстрирует, как управлять ответом приложения на основе фактической ошибки:
Пример C#
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");
break;
case 1045:
MessageBox.Show("Invalid username/password, please try again");
break;
}
}
Пример Visual Basic
Dim myConnectionString as String
myConnectionString = "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 Select
End Try
Если вы используете базы данных с несколькими языками, вам необходимо указать кодировку символов в строке подключения. Если вы не укажете кодировку символов, подключение по умолчанию будет использовать кодировку latin1. Вы можете указать кодировку символов как часть строки подключения, например:
MySqlConnection myConnection = new MySqlConnection("server=127.0.0.1;uid=root;" +
"pwd=12345;database=test;Charset=latin1");
© 2025 Oracle
Licensed under the GPLv2 License.