将字符串转换为SqlConnection时出错

时间:2014-01-05 19:38:59

标签: c# sql sql-server type-conversion

我收到了这个错误:

  

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

这是我的C#代码。

protected void Button1_Click(object sender, EventArgs e)
{
  //login button
  SqlConnection sqlConn = "Your Conncetion String"; //The error is here
  sqlConn.Open();

  SqlCommand sqlComm = new SqlCommand();
  sqlComm.CommandText = String.Format("select * from users where userName=@userName and password=@password");
  sqlComm.Parameters.AddWithValue("@userName", TextBox1.Text.Trim());
  sqlComm.Parameters.AddWithValue("@password", TextBox2.Text.Trim());
  sqlComm.CommandType = CommandType.Text;
  sqlComm.Connection = sqlConn;
  SqlDataReader sqlRead = sqlComm.ExecuteReader();
  if (sqlRead.Read())
  {
    Session["username"] = sqlRead["username"];
  }

  // SqlRead.Close();

  //sqlConn1.Close();

  Response.Redirect("Default.aspx");

}

有人可以解释这个错误的含义以及解决方法吗?

3 个答案:

答案 0 :(得分:5)

我知道你有一个连接字符串,想要一个SqlConnection对象。您可以使用其构造函数之一:

string connString = "Your Conncetion String"; // valid connection string
var sqlConn = new SqlConnection(connString);

最好使用using关键字,因为这会正确关闭连接。您还应该using使用SqlReader

using (var sqlConn = new SqlConnection(connString))
{
    sqlConn.Open();
    // the rest of the code
}

答案 1 :(得分:1)

更改

SqlConnection sqlConn = "Your Conncetion String"; 

SqlConnection sqlConn = new SqlConnection("Your Conncetion String");

答案 2 :(得分:0)

应该是

SqlConnection sqlConn = new SqlConnection("Your Conncetion String");

您可以从web.config

中阅读
SqlConnection sqlConn = new  
SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);

  

现在出现此错误当前上下文中不存在名称“ConfigurationManager”

  1. 您必须添加对System.Configuration.dll

  2. 的引用
  3. 然后将using System.Configuration;添加到您的班级。

  4. 您现在可以像这样访问您的配置文件:

    ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;