2013-02-14 60 views
1

我有以下代码从数据库表中的组合框绑定:如何绑定“选择项目”下拉框作为第一个项目

Public Sub FillComboBox(ByVal cboCombo As ComboBox, ByVal sSQL As String, ByVal strTable As String, ByVal strDisplayMember As String, ByVal strValueMember As String) 
    Dim CN As New OleDbConnection 

    Try 
     With CN 
      If .State = ConnectionState.Open Then .Close() 

      .ConnectionString = cnString 
      .Open() 
     End With 

     Dim da As OleDbDataAdapter = New OleDbDataAdapter(sSQL, CN) 
     Dim dt As New DataSet 

     da.Fill(dt, strTable) 

     cboCombo.DataSource = dt.Tables(strTable).DefaultView 
     cboCombo.DisplayMember = strDisplayMember 
     cboCombo.ValueMember = strValueMember 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
     Debug.Print(ex.Message) 
    Finally 
     CN.Close() 
    End Try 
End Sub 

由于“选择项”值不是从记录的一部分表格,我怎样才能将它添加到组合框中?

+0

请参阅此链接。 http://stackoverflow.com/questions/1887388/how-to-add-value-to-combobox-item – sujeesh 2013-02-14 04:49:48

回答

2

我想你可以从它添加一个额外的Datarow,就像这样。

Dim da As OleDbDataAdapter = New OleDbDataAdapter(sSQL, CN) 
    Dim dt As New DataSet 

    da.Fill(dt, strTable) 

    cboCombo.DataSource = dt.Tables(strTable).DefaultView 
    cboCombo.DisplayMember = strDisplayMember 
    cboCombo.ValueMember = strValueMember 


    Dim dr As DataRow = dt.Tables(strTable).NewRow() 
     dr(0) = "-1" 
     dr(1) = "Select Item" 
     dt.Tables(strTable).Rows.InsertAt(dr, 0) 
     cboCombo.DataBindings.Add("DataSource", dt, dt.Tables(strTable).TableName) 
     cboCombo.DataBindings.Clear() 
+0

谢谢你...工作就像一个魅力。 .. – jaypabs 2013-02-15 05:13:39

0

您可以设置组合框文本。

cboCombo.DataSource = dt.Tables(strTable).DefaultView 
    cboCombo.DisplayMember = strDisplayMember 
    cboCombo.ValueMember = strValueMember 
    cboCombo.Text = "(select an item)" 

另一种方法是结合combobox之前,实际上它添加到您的datatable

假设有一个method使用反射,但我无法得到它的工作。

+0

我忘了告诉组合框是一个下拉列表... – jaypabs 2013-02-14 05:51:40

相关问题