0

シンプルなコンセプトだと思うものを一日中探してきましたが、それが私が考えていることです。

次のように、データソースとしてDataTableを使用するComboBox列を持つDataGridViewコントロールがあります。

    With CType(dgvICS213.Columns(GridCol("CostBasis").Name), DataGridViewComboBoxColumn)
        .DataSource = Common.ExecuteQuery("SELECT ID, CostBasis FROM ICS213CostBasis", CommandType.Text)
        .DisplayMember = "CostBasis"
        .ValueMember = "ID"
    End With

データベーステーブルには、コンボボックスの値(ID)が格納されます。

DefaultValuesNeededイベントを使用して、新しい値をDisplayMember(CostBasis)値に設定します。

Dim dgv As DataGridView = sender
CType(e.Row.Cells(GridCol("CostBasis").Index), DataGridViewComboBoxCell).Value = CType(dgv.Columns(GridCol("CostBasis").Index), DataGridViewComboBoxColumn).Items(0).Item(1)

また、DisplayMember値を使用して、データベースクエリから既存の行を埋めます(DataErrorイベントの処理)

これまでのところ、これで問題ありませんが、comboxからエントリを選択すると、DisplayMemberではなくValueMemberがコンボに表示されます。誰かが私がどこで間違っているのか説明できますか?

4

1 に答える 1

0

私は同じ問題に直面し、データベースのフィールドを から に変更して解決しましbyteint16

于 2014-05-27T06:44:10.867 に答える