我是c#的新开发人员,我创建了一个c#项目,我需要访问SQL数据库来执行SELECT语句
我在这个图中遇到了这个错误
我的连接声明是正确的,所以它有什么问题?!
我尝试了上面提到的解决方案,我收到了这个错误
有谁知道如何处理它?!
答案 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不允许远程连接。你必须启用它。
答案 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();