2016-01-21 58 views
0

我正在通过存储过程从MySQL表中读取数据来填充asp下拉列表。VB.NET下拉列表不包含所有项目

数据读取器返回表中的所有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 
+0

使用SqlDataAdapter与DataSet或DataTable,而不是Reader。我认为这是更好的方法 – Khazratbek

回答

1

你不应该使用If catdata_rs.Read(),因为它由1

推进指针而是使用类似的代码如下。或者你可以删除数据绑定代码周围的if,并直接绑定到数据阅读器,如果它为空,那么你的列表下拉列表也将是空的。

If catdata_rs.HasRows Then 
      list_itemcategory.DataSource = catdata_rs 
      list_itemcategory.DataValueField = "category" 
      list_itemcategory.DataTextField = "category" 
      list_itemcategory.DataBind() 
End If