检查 MySql 数据库连接

3
我想为我的程序创建一个MySQL连接检查器,像往常一样,我使用了我的常用顾问SO,并且我看到了这个问题和答案,但是答案并不完全正确。 问题是: 如何在C#中检查有效的MySQL连接?
1个回答

8

这里是我自己的版本,用于检查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;
}

5
你应该使用 using 而不是 finally - undefined
是的,我不知道“using”会关闭连接。谢谢。 - undefined
将这段代码复制到我的项目中时出现错误:当前上下文中不存在“ConnectionState”名称。 同时,使用了以下两个命名空间: using MySql.Data; using MySql.Data.MySqlClient; - undefined
System.Data.ConnectionState.Open 是完整的路径 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接