我整天都在搜索我认为简单的概念,但这就是我的想法。
我有一个带有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事件)
到目前为止,非常好,但是当我从combox中选择一个条目时,ValueMember将显示在组合而不是DisplayMember中。有人可以解释我哪里出错了。
答案 0 :(得分:0)
我遇到了同样的问题,并通过将数据库中的字段从byte
更改为int16
来解决了这个问题。