我有一个数据库,在删除一行后我无法更新数据库,我收到错误:
类型'System.InvalidOperationException'的未处理异常 发生在System.Data.dll更新时需要有效的updatecommand 传递带有已删除行的datarow集合
...表示行:sqliteDataAdapter.Update(dataTable);
这是我的代码:
private void SaveChanges(bool keepControlsDisabled)
{
disableControls();
Validate();
programs_dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
programs_dgv.EndEdit();
programs_dgv.DataSource = null;
programs_dgv.DataSource = bindingSource;
programs_dgv.Update();
sqliteDataAdapter = new SQLiteDataAdapter();
sqliteDataAdapter.Update(dataTable);
dataTable.AcceptChanges();
if (keepControlsDisabled == false)
{
enableControls();
}
}
这是删除代码:
private void contextMenuStrip_tsmi_Click(object sender, EventArgs e)
{
Int32 rowToDelete = programs_dgv.Rows.GetFirstRow(DataGridViewElementStates.Selected);
programs_dgv.Rows.RemoveAt(programs_dgv.CurrentCell.RowIndex);
programs_dgv.ClearSelection();
}
我在Saving changes from a DataGridView back to an SQL database?看过这个问题,但这没有帮助。
是否有通用保存功能将记录从datagridview传递到数据库?
我在正确的方向?我是否必须处理数据库并在datagridview上显示结果?或者首先必须处理datagridview?我很困惑。哪一个适合表现?