我有一个 DataGridView,其中包含数据库中布尔变量的复选框列。
当我单击此复选框时,它会触发以下事件。
在 uiPersonGridView_CellValueChanged 事件中,我在作为 DataGridView 的数据源的 Persons 数据表上调用数据表适配器更新方法。
更新工作正常,第二次,但它仍然不会更新当前行数据?
例如,如果我有两行,如果我勾选第一行复选框;更新返回为 int i 更新的 0 行,我检查了数据库并且没有任何更改。但是如果我勾选第二行复选框,更新返回 1 行为 int i 更新 - 我检查数据库并且第一条记录已经改变,而不是第二条?
我怎样才能让它工作,以便更新适用于初始更改和之后的更改?
private void uiPersonGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (uiPersonGridView.IsCurrentCellDirty)
{
uiPersonGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void uiPersonGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (uiPersonGridView.DataSource == null)
return;
if (e.RowIndex == -1)
return;
int i = _personAdapter.Update(_person);
}