设置绑定到Access数据库(VB.Net)时ComboBox(下拉菜单)的默认值

设置绑定到Access数据库(VB.Net)时ComboBox(下拉菜单)的默认值,vb.net,.net-4.0,combobox,Vb.net,.net 4.0,Combobox,所以我要做的就是这样。我目前有一个显示用户名列表的组合框。当表单加载时,这个组合框是一个下拉框,分析师可以从列表中选择他们的名字。我想做的是让组合框的默认值显示“selectusername”,当然,当他们选择没有显示的下拉框时 我基本上可以将其作为一个值添加到access数据库中,但这其中的乐趣何在。是的,代码时间: Private Sub FillCombo() Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft

所以我要做的就是这样。我目前有一个显示用户名列表的组合框。当表单加载时,这个组合框是一个下拉框,分析师可以从列表中选择他们的名字。我想做的是让组合框的默认值显示“selectusername”,当然,当他们选择没有显示的下拉框时

我基本上可以将其作为一个值添加到access数据库中,但这其中的乐趣何在。是的,代码时间:

Private Sub FillCombo()

    Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Server Location.accdb")
    Dim query As String = ("SELECT User_Name, User_ID FROM Analysts")
    Dim da As New OleDb.OleDbDataAdapter(query, fillcon)
    Dim ds As New DataSet


    da.Fill(ds)
    ComboBox1.ValueMember = "User_Name"
    ComboBox1.DataSource = ds.Tables(0)
    ComboBox1.SelectedIndex = 0
    ComboBox1.SelectedItem = "Select UserID"


    TextBox10.DataBindings.Clear()
    TextBox10.DataBindings.Add("Text", ds.Tables(0), "User_ID")


End Sub

现在FillCombo()被放置在Form Load中并且工作得很好,唯一不起作用的是“Select UserID”没有显示为默认文本。想法?

不要设置selecteditem属性,该项不在列表中。 将“文本”属性设置为所需的文本

ComboBox1.Text = "Select UserID"

您不能将项添加到数据绑定组合框中,也不必将其添加到数据库中,只需将其添加到数据表中即可

Dim row = ds.Tables(0).NewRow()
row(0) = "Select UserID"
row(1) = 0
ds.Tables(0).Rows.InsertAt(row, 0)
ComboBox1.SelectedIndex = 0

不要将组合框绑定到数据源。使用此方法填充组合框。然后,您将能够设置文本属性

   da.Fill(ds)

   for each dr as datarow in ds.Tables(0).Rows   
        ComboBox1.Items.Add(dr("User_Name"))
   next 

  ComboBox1.Text = "Select UserID"

我想你可以为它设置文本属性
ComboBox1.Text=“选择用户ID”
。重置表单时执行此操作,文本在下拉时应消失。因此,我将其更改为da.Fill(ds)ComboBox1.ValueMember=“User\u Name”ComboBox1.DataSource=ds.Tables(0)ComboBox1.SelectedIndex=0 Combobobox1.text=“选择用户ID”但是现在发生的是access数据库中的第一个值仍然在显示。哦,我的错。您使用的是绑定组合框,我们从不在此处绑定控件。我相信对于绑定控件,该项必须在列表中。因此,如果我要制作一个标签,并将“自动大小”更改为False,并将其放置在组合框文本字段上,那么让我问一下这个问题。你知道如何在点击组合框时使标签消失吗?我在LabelXYZ.visible=False中尝试了ComboBox1_单击并通过,当然这不起作用。所以我尝试了,但数据库没有加载,因为框中没有填充任何内容。Dim row=ds.Tables(0).NewRow()da.Fill(ds)ComboBox1.ValueMember=“User_Name”ComboBox1.DataSource=ds.Tables(0)row(0)=“Select UserID”ds.Tables(0).Rows.InsertAt(row,0)ComboBox1.SelectedIndex=0Boom…就是这样做的,我实际上学到了一些新东西。谢谢加里,希望我能寄给你一个我的家庭酿酒伙伴。