0
我似乎無法得到這個工作。我想用相同的數據填充多個下拉列表。每次運行相同的查詢效率不高。這裏就是我已經設法弄到:用一個SQL查詢填充多個下拉列表
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If (Not Page.IsPostBack) Then
Dim ddlArray = {lst1, lst2, lst3, lst4, lst5, lst6, lst7, lst8, lst9, lst10}
PopulateObjectList(ddlArray)
End If
End Sub
Sub PopulateObjectList(ByVal ddlArray As Array)
strSQL = "select distinct Object_ID, Object_Description from object"
objCmd = New SqlCommand(strSQL, Master.DBConnect())
For Each ddl In ddlArray
ddl.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection)
ddl.DataValueField = "Object_ID"
ddl.DataTextField = "Object_Description"
ddl.DataBind()
ddl.Items.Insert(0, "Select Object")
Next
Call Master.DBDisconnect()
End Sub
當然,這給出了錯誤:
ExecuteReader requires an open and available Connection. The connection's current state is closed.
因爲初始數據源分配後,連接被關閉。我會想象我可以創建一個變量來保存數據,然後將其綁定到每個下拉列表,但數據集不起作用,我不知道該怎麼辦。
如何使用相同的數據填充10個下拉列表中的每個列表,而無需在數據庫上運行10個單獨的查詢?
簡單地刪除,然後會出現錯誤:'已經有一個打開的DataReader與這個Command必須首先關閉(我也試過)。 – Dan
請發表一個你將如何解決這個問題的代碼示例。它不適合我嘗試的方式。 – Dan
無法驗證它,但這將是我的方法。 –