我需要一种简单的方法来填充正在添加的当前项目的数据库中的值,以便我以后可以使用它:
'Filling the MAIN Categories part
Dim DataAdapterCatm As New MySqlDataAdapter("SELECT id,title From catM;", MySqlConnection)
Dim dsMc As New DataTable
DataAdapterCatm.Fill(dsMc)
For counter = 0 To dsMc.Rows.Count - 1
LbMCat.Items.Add(dsMc.Rows(counter).Item("title").ToString)
'LbMCat.ValueMember = dsMc.Rows(counter).Item("id").ToString
'The above line don't work, I need something to replace it
Next
答案 0 :(得分:1)
你误解了ValueMember的含义。 ValueMember是一个字符串,表示您希望用作值的属性。在你的情况下,它只是"id"
。请注意,它是ListBox
的属性 - 每次都没有区别。
ValueMember
和相关的DisplayMember
仅在使用带有DataSource属性的DataBinding时有效,并且在通过Items.Add
手动将项添加到ListBox时无效。你想要的是以下几点:
Dim DataAdapterCatm As New MySqlDataAdapter("SELECT id,title From catM;", MySqlConnection)
Dim dsMc As New DataTable
DataAdapterCatm.Fill(dsMc)
LbmCat.DataSource = dsMc;
LbMCat.ValueMember = "id";
LbmCat.DisplayMember = "title";
答案 1 :(得分:1)
尝试使用for循环代替两行:
LbMCat.Items.Add(New ListItem(dsMc.Rows(counter).Item("title").ToString(), dsMc.Rows(counter).Item("id").ToString())
在ListItem
的构造函数中,您无法同时指定ListItem
的值和文本