无法将类型'string'隐式转换为'System.Data.SqlClient.Sqlconnection'

时间:2011-06-07 07:51:16

标签: c# .net sql-server winforms

我收到此错误:

  

无法将类型'string'隐式转换为'System.Data.SqlClient.Sqlconnection'

代码:

SqlConnection con1 = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;

我该如何解决这个问题?我正在使用Windows应用程序。

4 个答案:

答案 0 :(得分:15)

这就是你需要的:

using(SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString))
{
   // do something with con1
}

注意:这比其他答案更好,因为它包含另一个提示:使用using关键字来保证处理连接对象,从而防止出现连接池问题。 :)

您在第一时间收到错误的原因是您尝试将字符串值(ConfigurationManager.ConnectionStrings [“connect”]。ConnectionString)分配给SqlConnection类型的变量。

我建议您在C#中了解有关变量类型,变量转换和类型赋值的更多信息,这将使编码变得更加愉快(不那么令人沮丧)。

祝你好运!

答案 1 :(得分:3)

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);

答案 2 :(得分:1)

ConfigurationManager.ConnectionStrings["connect"].ConnectionString是一个用于保存连接信息的String。

您需要创建一个SqlConnection实例并传入连接字符串值。

SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);

答案 3 :(得分:0)

using (System.Data.SqlClient.SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString)) { 
    con.Open(); 
    SqlCommand cmd = new SqlCommand(); 
    string expression = "Parameter value"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "Your Stored Procedure"; 
    cmd.Parameters.Add("Your Parameter Name", 
                SqlDbType.VarChar).Value = expression;    
    cmd.Connection = con; 
    using (IDataReader dr = cmd.ExecuteReader()) 
    { 
        if (dr.Read()) 
        { 
        } 
    } 
}