你能解释一下为什么我不能在程序中使用两个数据读取器吗?
这是示例代码:
Private Sub Do_Execute()
Dim conx as SqlConnection
Dim cmd1 as SqlCommand
Dim cmd2 as SqlCommand
Dim drd1 as SqlDataReader
Dim drd2 as SqlDataReader
conx = new SqlConnection("connection string")
conx.Open()
cmd1 = new SqlCommand("SELECT * FROM Category" , conx)
drd1 = cmd1.ExecuteReader()
While (drd1.Read())
{
Reading Data From drd1
}
cmd2 = new SqlCommand("SELECT * FROM Stock" , conx)
drd2 = cmd2.ExecuteReader()
While (drd2.Read())
{
Reading Data From drd2
}
End Sub
当我执行该程序时,它会抛出异常消息:“已经有一个打开的 DataReader 与此命令关联,必须先关闭!”
当我在初始化 drd2 之前关闭 drd1 时。有用。
为什么我不能像上面的代码一样使用?请解释一下。提前致谢!