2013-06-19 110 views
0

我想爲我的程序創建一個mysql連接檢查程序,因爲我總是使用我的平常顧問SO,並且我登錄到這個Question,答案並不完全正確。檢查MySql數據庫連接

問題是: 如何檢查在c#有效的mysql連接?

回答

4

這是我自己的版本來檢查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'。 – SLaks

+0

是我不知道,「用」被關閉連接。由於 – Incognito

+0

compying此代碼,以我的項目錯誤說:「ConnectionState」這個名字不會在當前上下文中。 既 使用MySql.Data; 使用MySql.Data.MySqlClient; 目前... – docesam