2013-02-14 59 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

相關問題