Witam,
Dopiero zaczynam programować w C# (i w ogóle programować). Mam problem z usuwaniem wierszy z bazy danych. Ma to być rozwiązane w ten sposób, że mam checkedListBox, zaznaczam id wiersza i usuwam zaznaczone. Mam taki błąd:
Concurrency violation: the DeleteCommand affected 0 of the expected 1 records.
Wiersz się usuwa (ale tylko jeden, nawet jak jest zaznaczonych więcej), ale wyskakuje ten błąd :/
Mój kod:
string sql2 = "SELECT * FROM moty";
string del = "DELETE FROM moty WHERE id_mota=:id";
NpgsqlConnection conn2 = new NpgsqlConnection(connstring2);
conn2.Open();
NpgsqlDataAdapter da2 = new NpgsqlDataAdapter(sql2, conn2);
ds_usun.Reset();
da2.Fill(ds_usun, "usun_moty");
dt2 = ds_usun.Tables["usun_moty"];
NpgsqlCommand cmd = new NpgsqlCommand(del, conn2);
foreach (object zaznaczone in checkedListBox1.CheckedItems)
{
cmd.Parameters.AddWithValue(":id", zaznaczone.ToString());
foreach (DataRow row in dt2.Rows)
{
row.Delete();
}
}
da2.DeleteCommand = cmd;
da2.Update(ds_usun, "usun_moty");
Proszę bardzo o pomoc.