Вы можете объяснить мне, почему я не могу использовать два устройства чтения данных в процедуре?
Вот пример кода:
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, связанный с этой командой, которую нужно сначала закрыть!»
Когда я закрыл drd1 до инициализации drd2. Оно работает.
Почему я не могу использовать приведенный выше код? Пожалуйста, объясните мне. Заранее спасибо!