我的DataGridView
绑定到BindingSource
,它再次具有DataSet
作为其DataSource
。除其他外,DataSet
中的相应TableAdapter
具有从Access数据库提供数据的Fill
方法。我填补我DataGridView
数据如下图所示:DataGridView在更新后显示第一行中的一些空单元格
myTableAdapter.Fill(myDataSet.MyDataTable);
所有这一切工作正常,并符合市场预期。当我使用UpdateQuery
(也可以正常工作)更改我的数据,然后再次单击我的DataGridView
中的任意行时,出现问题 - 只要我点击,(总是)第一行的最后两个单元格为显示为空。无论我点击哪一行,始终是第一行中的单元格,并且仅在执行UpdateQuery
之后。
当我直接检查Access数据库时,一切正常(即更新成功)。当我重新启动我的应用程序时,一切都显示出来没有任何问题(直到下一次我拨打UpdateQuery
并点击进入我的DataGridView
)。
我也打过电话EndEdit()``and
刷新on the
的DataGridView and calling
的AcceptChanges()on both the
数据集and the respective
DataTable` - 什么都没有改变。
更新
所描述的行为只毫无问题执行UpdateQuery
,Insert
S和Delete
工作之后发生(数据被正确地更新的,无显示的问题)。
更新2
当我使用不同的事件处理程序的问题也存在 - 原来我用CellClick
,我也用CellContentClick
和CellMouseClick
尝试。它甚至发生在我完全不使用鼠标的情况下,但使用键盘在DataGridView
内导航。
这似乎是“我的”数据显示不起作用的情况,我错过了什么?无论我查询/更新数据有多简单或复杂,我在表格中使用的所有DataGridView
都会发生同样的错误。
尝试设置BindigSource.AllowNew = false – daniele3004 2014-11-04 15:46:20
@ daniele3004 - 尝试过,没有工作(如预期的 - 为什么这应该有所作为?)。 – Gorgsenegger 2014-11-05 10:29:16
我使用BindingSource加载一个List或Array。在我的情况下,它的作品。 – daniele3004 2014-11-05 10:47:32