我知道这个问题已被问了一千次,我已经完成了我的研究,但是我无法找到任何可以解决这个问题的东西。我正在从数据表中加载一个组合框,并设置.selectedindex = -1,以便用户可以进行选择。但是,如果用户改变主意并想要取消选择,则他们无法做到这一点,因为下拉列表中的所有项目都有值。我遇到了一些建议用户点击删除的地方,并设置.selectedIndex = -1,但我不知道如何在可以选择的下拉列表中添加一个空值。这是我的代码看起来像......
我运行一个存储过程并将其加载到DataTable中,DataTable用作我的数据源......
dt.Load(cmd.ExecuteReader)
oCombobox.DataSource = dt
oCombobox.ValueMember = "ID"
oCombobox.DisplayMember = "Name"
oCombobox.SelectedIndex = -1
我做了很多研究,根本无法为VB.Net找到可行的解决方案,我已经遇到了一些C#的解决方案,但DataTable.AddRow()不是其中之一因此VB的函数无法在我的项目中实现它。
编辑
Dim dr As DataRow = dt.NewRow
dr("ID") = 0
dr("Name") = ""
dt.Rows.Add(dr)
答案 0 :(得分:2)
我在程序中添加了一个带有空白值的联合:
SELECT ID = 0,
Name = ''
UNION
SELECT ID,
Name
FROM YourTable
然后,您可以执行Order By
,以便0从顶部开始。不确定这是否是最佳方式,但过去它对我有用。
您可以修改DataTable
并添加一个包含空白值的新行:
Dim dr As DataRow = dt.NewRow
dr("ID") = 0
dr("Name") = ""
dt.Rows.Add(dr)
如果您想订购DataTable
,最好的选择是使用DataView
:
Dim dv As New DataView(dt)
dv.Sort = "ID ASC"
或者正如Plutonix在评论中所说:
dt.Rows.InsertAt(dr,0)
答案 1 :(得分:0)
尝试一下,我已经尝试使用它了并且可以使用。 :)
Combobox1.datasource = table
Combobox1.SelectedIndex = -1
ComboBox1.DisplayMember = "Column you want to display"
ComboBox1.ValueMember = "ID"