检查MySql数据库连接

Inc*_*ito 2 c# mysql database-connection

我想为我的程序创建一个mysql连接检查器,并且一如既往地使用我的常用顾问SO而且我登陆了这个问题并且答案并不完全正确.

问题是: 如何在c#检查有效的mysql连接?

Inc*_*ito 6

这是我自己的版本来检查mysql连接.

public static bool checkDB_Conn()
{
    var conn_info = "Server=address;Port=3306;Database=dbhere;Uid=admin;Pwd=123";
    bool isConn = false;
    MySqlConnection conn = null;
    try
    {
        conn = new MySqlConnection(conn_info);
        conn.Open();
        isConn = true;
    }
    catch (ArgumentException a_ex)
    {
        /*
        Console.WriteLine("Check the Connection String.");
        Console.WriteLine(a_ex.Message);
        Console.WriteLine(a_ex.ToString());
        */
    }
    catch (MySqlException ex)
    {
        /*string sqlErrorMessage = "Message: " + ex.Message + "\n" +
        "Source: " + ex.Source + "\n" +
        "Number: " + ex.Number;
        Console.WriteLine(sqlErrorMessage);
        */
        isConn = false;
        switch (ex.Number)
        {
            //http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html
            case 1042: // Unable to connect to any of the specified MySQL hosts (Check Server,Port)
                break;
            case 0: // Access denied (Check DB name,username,password)
                break;
            default:
                break;
        }
    }
    finally
    {
        if (conn.State == ConnectionState.Open)
        {
            conn.Close();
        }
    }
    return isConn;
}
Run Code Online (Sandbox Code Playgroud)

  • 你应该使用`using`而不是`finally`. (5认同)