2013-02-04 29 views
0

我想寫一個函數來檢查窗體上給出的連接細節是否有效,所以它返回True,否則返回False:如何檢查MySql Server的連接詳細信息是否有效?

我該如何做到這一點?

我下面的代碼:

private bool checkConnectionSuccess(string host, string user, string pass, string dbname) { 
     string strProvider = "Data Source=" + host + ";Database=" + dbname + ";User ID=" + user + ";Password=" + pass; 
     MySqlConnection myConn = new MySqlConnection(strProvider); 
     myConn.Open(); 

     if (________) return true; else return false; 


    } 

我應該以檢查連接做基於給定的細節羯羊它succeded(user和pass,DBNAME,主機)

三江源

+0

嘗試使用提供的憑證進行連接,如果失敗則提供錯誤消息(或返回true/false)? – DGibbs

回答

1

使用try catch塊:

private bool checkConnectionSuccess(string host, string user, string pass, string dbname) 
{ 
    string connectionString = "Data Source=" + host + ";Database=" + dbname + ";User ID=" + user + ";Password=" + pass; 

    bool sucessful = true; 

    using (MySqlConnection conn = new MySqlConnection (connectionString)) 
    { 
    try 
    { 
     conn.Open(); 
    } 
    catch (MySqlException ex) 
    { 
     sucessful = false; 
    } 
    } 
    return sucessful; 
} 

這是可能的,因爲MySQLCo在大多數例外情況下,nnection可能會失敗,包括憑據錯誤或連接字符串無效。

1

使用try-catch塊,並設置一個標誌,告訴它是否工作。

string strProvider = "Data Source=" + host + ";Database=" + dbname + ";User ID=" + user + ";Password=" + pass; 
MySqlConnection myConn = new MySqlConnection(strProvider); 

bool success = true; 

try 
{ 
    myConn.open(); 
} 
catch (Exception e) 
{ 
    success = false; 
} 

return success;