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

「アイテムの選択」の値はテーブルのレコードの一部ではないので、コンボボックスに追加するにはどうすればよいですか?

4

2 に答える 2

3

このようなものから、追加の 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()
于 2013-02-14T06:27:54.380 に答える
0

コンボボックスのテキストを設定できます。

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

datatable別の方法は、にバインドする前に、実際にに追加することcomboboxです。

リフレクションを使った方法もあるらしいのですが、うまくいきませんでした。

于 2013-02-14T05:39:52.050 に答える