你能解釋一下爲什麼我不能在程序中使用兩個datareader?爲什麼我不能在一個程序中使用兩個datareader?
下面是示例代碼:
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時。有用。
爲什麼我不能像上面的代碼一樣使用?請解釋我。提前致謝!
總是關閉/處置您的SqlDataReaders。你應該爲你的SqlConnection做同樣的事情 – Brannon 2009-11-23 09:22:17
是的Brannon!感謝您的建議!我最後關閉所有連接和閱讀器對象。 – RedsDevils 2009-11-23 09:35:21