【问题标题】:Cannot implicitly convert type 'string' to 'System.Data.SqlClient.Sqlconnection'无法将类型“字符串”隐式转换为“System.Data.SqlClient.Sqlconnection”
【发布时间】:2011-09-09 20:48:57
【问题描述】:

我收到此错误:

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

对于此代码:

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

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

【问题讨论】:

  • 你真的应该接受解决你问题的答案。
  • 感谢所有回答我问题的人。

标签: c# .net sql-server winforms


【解决方案1】:
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()) 
        { 
        } 
    } 
}

【讨论】:

    【解决方案2】:

    这是你需要的:

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

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

    您首先收到错误的原因是您试图将字符串值 (ConfigurationManager.ConnectionStrings["connect"].ConnectionString) 分配给 SqlConnection 类型的变量。

    我建议您更多地了解 C# 中的变量类型、变量转换和类型分配,这将使编码成为一种更加愉快(不那么令人沮丧)的体验。

    祝你好运!

    【讨论】:

    • 你能把 ConfigurationManager.ConnectionStrings["connect"].ConnectionString 的值放在这里
    • @DeveloperX - 其值取决于 app.config 文件中的内容。
    • 不确定您为什么要在 developerx 此处添加该评论 - 您是否打算将其添加到原始问题中?不清楚,对不起...
    • @Nathan:谢谢。您的回答帮助我解决了问题。
    【解决方案3】:

    ConfigurationManager.ConnectionStrings["connect"].ConnectionString 是一个保存连接信息的字符串。

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

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

    【讨论】:

      【解决方案4】:
      SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-15
        • 2014-02-04
        • 2011-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多