绑定的组合框项目指不同的字段项目
问题描述:
我在vb.net中得到了一个有界的组合框。我可以在组合框的下拉菜单中查看组名称。但是当我做一个插入或更新查询时,我需要使选定的组名称引用GROUP NUMBER。我不想在数据库中存储字母,而是我更喜欢数字。我怎样才能做到这一点?!绑定的组合框项目指不同的字段项目
这是到目前为止我的代码:
cmd1.Parameters.AddWithValue("@group", DirectCast(Additemcombobox.SelectedItem,
DataRowView).Item("GroupName"))
存储在数据库中,目前运作良好的组名。
我的问题可能没有很好解释。请问我的情况下... 任何帮助,将不胜感激
答
您可以显示一个元素给用户,如名称,而是用一个不同的代码使用DisplayMember
和ValueMember
Dim SQL = "SELECT Id, Name FROM GroupCode ORDER BY Name"
...
GrpDT = New DataTable
GrpDT.Load(cmd.ExecuteReader)
cboGroup.DataSource = GrpDT
cboGroup.DisplayMember = "Name"
cboGroup.ValueMember = "Id"
用户将只能看到名称,而该代码可以使用ValueMember
:
Private Sub cboGroup_SelectedValueChanged(...etc
Console.WriteLine(cboGroup.SelectedValue)
End Sub
它打印组ID而不是名字。根据SQL和ID中的ORDER BY子句,SelectedIndex
可能匹配也可能不匹配,因此应对SelectedValueChanged
事件。如果您使用SelectedValue
而不是SelectedItem
,则无需使用DataRowView
项目。
请注意,SelectedValue
是Object
所以你将不得不投入整数或其他地方使用。
是否有与其绑定的表中的名称关联的数字?什么是它绑定到一个DataTable? – Plutonix
是的,我得到了一个2字段的表:组号和组名 – charles
组合框是以groupname为界的;我希望当我选择groupname来使用我的插入查询中的groupnumber – charles