私はデータベースを持っていると私は行を削除した後、私は、データベースを更新することはできません、私はエラーを取得しています:どのようにしてdatagridviewからデータベースに保存できますか?
An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll update requires a valid updatecommand when passed datarow collection with deleted rows
...ラインを示す:ここでは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を処理する必要がありますか?私はとても混乱しています。パフォーマンスのためにどちらが正しいですか?
に役立ちます。 (SqlDataSource.UpdateCommand)を実行する有効な更新ステートメントがいったんこのエラーを受け取るべきではない、デザイナービューでこれを設定できる必要があります。 – user685590