คุณช่วยอธิบายฉันหน่อยได้ไหมว่าทำไมฉันถึงไม่สามารถใช้ 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 ที่เปิดอยู่เชื่อมโยงกับคำสั่งนี้ซึ่งจะต้องปิดก่อน! "
เมื่อฉันปิด drd1 ก่อนที่จะเริ่มต้น drd2 มันได้ผล.
เหตุใดฉันจึงใช้โค้ดแบบด้านบนไม่ได้ โปรดอธิบายฉันด้วย ขอบคุณล่วงหน้า!