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

Posted

技术标签:

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

我收到此错误:

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

对于此代码:

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

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

【问题讨论】:

你真的应该接受解决你问题的答案。 感谢所有回答我问题的人。 【参考方案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);

【讨论】:

以上是关于无法将类型“字符串”隐式转换为“System.Data.SqlClient.Sqlconnection”的主要内容,如果未能解决你的问题,请参考以下文章

匿名托管的 DynamicMethods 程序集:无法将类型“字符串”隐式转换为“整数”

向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”

Js隐式转换

无法将类型“System.DateTime”隐式转换为“string”是啥意思?怎么改正?

无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost

无法将类型“unityengine.vector3”隐式转换为“float”