不能键入“串”隐式转换为“System.Data.SqlClient.Sqlconnection”
我收到此错误:不能键入“串”隐式转换为“System.Data.SqlClient.Sqlconnection”
cannot implicitly convert type 'string' to 'System.Data.SqlClient.Sqlconnection'
此代码:
SqlConnection con1 = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
我该如何解决这个问题?我正在使用Windows应用程序。
这是你所需要的:
using(SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString))
{
// do something with con1
}
注:这是比其他答案更好,因为它包含另一个提示:使用using关键字,以保证您的连接对象的处理,从而防止连接池的问题。 :)
您在第一个位置得到错误的原因是您试图将一个字符串值(ConfigurationManager.ConnectionStrings [“connect”] .ConnectionString)分配给SqlConnection类型的变量。
我建议你在C#中学习更多关于变量类型,变量转换和类型赋值的知识,它将使编码变得更加愉悦(不那么令人沮丧)。
祝你好运!
+1使用'使用' – 2011-06-07 07:54:50
你可以把ConfigurationManager.ConnectionStrings [“connect”]的值。ConnectionString here – DeveloperX 2011-06-07 07:56:12
@Alex R. - 谢谢 - 一个经常错过的必要! – Nathan 2011-06-07 07:56:31
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
ConfigurationManager.ConnectionStrings["connect"].ConnectionString
是保存连接信息的字符串。
您需要创建一个SqlConnection实例并传入连接字符串值。
的SqlConnection的SqlConnection =新SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
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())
{
}
}
}
你真的应该承认,解决你的问题的答案。 – 2011-06-07 08:16:44
谢谢所有回答我的问题的人。 – Amruta 2011-06-07 10:35:41