ik heb volgende C# code voor een Savebutton, die de aangepaste (inserted/deleted/updated) rijen uit een datagridview moet bewaren in een ingeladen datatable:
Wanneer ik manueel, via de GUI dus, bepaalde rijen/cellen in de datagrid aanpas, toevoeg, verwijder,.. dan kan ik deze wijzigingen perfect opslaan met deze savebutton, zolang de eerste rij er niet tussen zit.
Anders krijg ik de error:
"Concurrency violation: the DeleteCommand affected 0 of the expected 1 records"
en worden de aanpassingen niet bewaard.
Er is een auto-incrementing primary key ingesteld voor de database.
Heb al heel veel over dit type fout over gelezen (zoals op http://www.codeproject.co...currency-violation-the-De ), maar vind niet de correcte oplossing.
Tevens wil ik mijn code zo simpel mogelijk houden.
Hoe zou ik dit kunnen in orde krijgen?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| private void SaveButton_Click(object sender, EventArgs e) { string currenttable = tableComboBox.Text; if (!(String.IsNullOrEmpty(currenttable)) && TableExists(currenttable, sqlConnect)) { if (sqlConnect != null && sqlConnect.State == ConnectionState.Closed) { //open database if closed sqlConnect.Open(); } SQLiteCommandBuilder SQLiteCommandBuilder = new SQLiteCommandBuilder(sqliteAdapter); try { SQLiteCommandBuilder.GetInsertCommand(); SQLiteCommandBuilder.GetUpdateCommand(); SQLiteCommandBuilder.GetDeleteCommand(); //update dataset sqliteAdapter.Update(dataTable); //Sqliteadapter is geldig, werd eerder in code al geinstanced } catch (Exception ex) { MessageBox.Show(ex.Message); } if (sqlConnect != null && sqlConnect.State == ConnectionState.Open) { //close database if opened sqlConnect.Close(); } } } |
Wanneer ik manueel, via de GUI dus, bepaalde rijen/cellen in de datagrid aanpas, toevoeg, verwijder,.. dan kan ik deze wijzigingen perfect opslaan met deze savebutton, zolang de eerste rij er niet tussen zit.
Anders krijg ik de error:
"Concurrency violation: the DeleteCommand affected 0 of the expected 1 records"
en worden de aanpassingen niet bewaard.
Er is een auto-incrementing primary key ingesteld voor de database.
Heb al heel veel over dit type fout over gelezen (zoals op http://www.codeproject.co...currency-violation-the-De ), maar vind niet de correcte oplossing.
Tevens wil ik mijn code zo simpel mogelijk houden.
Hoe zou ik dit kunnen in orde krijgen?