我该如何处理这个错误?

时间:2013-11-07 15:55:56

标签: c# sql sql-server visual-studio-2012

我是c#的新开发人员,我创建了一个c#项目,我需要访问SQL数据库来执行SELECT语句

我在这个图中遇到了这个错误

enter image description here

我的连接声明是正确的,所以它有什么问题?!

我尝试了上面提到的解决方案,我收到了这个错误

enter image description here

有谁知道如何处理它?!

2 个答案:

答案 0 :(得分:6)

错误告诉您该怎么做,您的连接尚未打开。打开就像:

con.Open();

在执行命令之前。

您的代码有很多东西,使用参数化查询,这将使您免于SQL Injection,也使用using语句,这将确保处理连接对象。

using (SqlConnection con = new SqlConnection("connection string")) 
using(SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID=@EmpID", con))
{
    cmd.Parameters.AddWithValue("@EmpID", id.Text);
    con.Open();
    SqlDataReader reader = cmd.ExecuteReader();
    //..... your rest of the code
}

编辑:

对于您编辑过的部分问题,您的SQL Server不允许远程连接。你必须启用它。

请参阅:How to enable remote connections in SQL Server

答案 1 :(得分:2)

读者需要打开连接

在执行读者之前放置con.Open()

SqlCommand cmd = newSqlCommand("SELECT EmpName from Employee where EmpID =" +id.Text,con);
con.open(); //Open connection
SqlReader Read = cmd.ExecuteReader();
if (Read.Read())
{
 Position =Read[0].tostring();
}
read.close();
con.close();//Close connection after reader finishes reading
con.Dispose();