2012-09-20 120 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

感谢“暗影精灵”。有效... –