2012-09-20 161 views
1

我遇到問題。我寫這個方法來打開sql連接。但它沒有奏效。 爲什麼沒有這個工作。連接未打開

public SqlConnection connection() 
{ 
    string DBName = ConfigurationManager.AppSettings["DBName"].ToString(); 
    string ServerName = ConfigurationManager.AppSettings["ServerName"].ToString(); 
    string UserId = ConfigurationManager.AppSettings["UserId"].ToString(); 
    string DBPassword = ConfigurationManager.AppSettings["DBPassword"].ToString(); 

    EMVTool.OSSPwdProcessor PwdPass = new EMVTool.OSSPwdProcessor(); 

    String sClearPwd = ""; 

    if (DBPassword.Length > 40) 
     sClearPwd = PwdPass.DecryptPwd(DBPassword); 
    else 
     sClearPwd = DBPassword; 

    string ConnectionString = "Server=" + ServerName + ";Database =" + DBName + ";UID =" + UserId + ";PWD =" + sClearPwd + ";MultipleActiveResultSets=True;"; 

    SqlConnection connect = new SqlConnection(ConnectionString); 

    return connect; 
} 

我打電話給打開sql連接的方法。

connection().Open(); 
+3

*如何*不工作?此外,請在實際使用連接的位置顯示相關代碼,而不是創建它的位置。 –

+1

您也可能發佈產生的'ConnectionString'。 – Bartosz

+2

...記得清除用戶名和密碼。 –

回答

3

它沒有工作,因爲你打開了一些東西,但之後使用了不同的實例。

要使其工作,分配函數的返回值局部變量:

using (SqlConnection conn = connection()) 
{ 
    conn.Open(); 
    //rest of code... 
} 
+0

感謝「暗影精靈」。有效... –