因为连接到外部服务器是不可预测的,所以向 .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");