2016-01-21 28 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 
相關問題