无法将类型“字符串”隐式转换为“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”隐式转换为“字符串”
无法将类型“System.DateTime”隐式转换为“string”是啥意思?怎么改正?
无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost