如何从datagridview保存到数据库?

时间:2017-08-23 21:32:18

标签: c# database sqlite

我有一个数据库,在删除一行后我无法更新数据库,我收到错误:

  

类型'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?我很困惑。哪一个适合表现?

1 个答案:

答案 0 :(得分:0)

您是否使用过deletecommand

我认为它更像是一个sql程序,你可以很容易地从调试中找到答案。

或看到这有助于https://stackoverflow.com/a/18578486/1481690