1

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

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

在此处输入图像描述

我的连接语句是正确的,那么它有什么问题?!

我尝试了上述解决方案,但出现此错误

在此处输入图像描述

有谁知道怎么处理?!

4

2 回答 2

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 不允许远程连接存在问题。您必须启用它。

请参阅:如何在 SQL Server 中启用远程连接

于 2013-11-07T15:56:53.127 回答
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();
于 2013-11-07T15:57:30.123 回答