我收到此错误:
无法将类型'string'隐式转换为'System.Data.SqlClient.Sqlconnection'
代码:
SqlConnection con1 = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
我该如何解决这个问题?我正在使用Windows应用程序。
答案 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())
{
}
}
}