0

我整天都在寻找我认为是一个简单的概念,但这就是我思考的结果。

我有一个带有 ComboBox 列的 DataGridView 控件,该列使用 DataTable 作为其 DataSource,如下所示:

    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 事件)

到目前为止,一切都很好,但是当我从组合框中选择一个条目时,ValueMember 将显示在组合中,而不是 DisplayMember。有人可以解释我哪里出错了。

4

1 回答 1

0

我遇到了同样的问题,并通过将数据库中的字段从更改byteint16.

于 2014-05-27T06:44:10.867 回答