文档首页
MySQL Connector/NET 开发者指南
相关文档 下载本手册
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb


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");