我通过存储过程从 MySQL 表中读取数据来填充 asp 下拉列表。
数据读取器返回表中的所有 4 行,但下拉列表中仅列出第 2、3、4 行。
这是设置下拉列表的代码。有人对可能出了什么问题有任何想法吗?
谢谢
Try
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
Dim cmd As New MySqlCommand()
conn.Open()
cmd.Connection = conn
cmd.CommandText = "Select_CatLibraryData"
cmd.CommandType = CommandType.StoredProcedure
Using catdata_rs As MySqlDataReader = cmd.ExecuteReader()
If catdata_rs.Read() Then
list_itemcategory.DataSource = catdata_rs
list_itemcategory.DataValueField = "category"
list_itemcategory.DataTextField = "category"
list_itemcategory.DataBind()
End If
End Using
Catch ex As MySql.Data.MySqlClient.MySqlException
lbl_ErrorPanelText.Text = "Error establishing a database connection!"
pn_ErrorPanel.Visible = True
End Try
最佳答案
您不应使用 If catdata_rs.Read()
,因为它会使指针前进 1。
请使用如下代码。或者,您可以删除数据绑定(bind)代码周围的 if
并直接绑定(bind)到数据读取器,如果它为空,那么您的列表下拉列表也将为空。
If catdata_rs.HasRows Then
list_itemcategory.DataSource = catdata_rs
list_itemcategory.DataValueField = "category"
list_itemcategory.DataTextField = "category"
list_itemcategory.DataBind()
End If
关于mysql - VB.NET 下拉列表未填充所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34934427/