I setup DataGridView and other UI components to allow user to edit data from SQLite DB. But these changes (even they are properly shows in application) doesn't saves to DB. I have tried this code
aBindingSource.EndEdit();
dbDataSetA.GetChanges();
aTableAdapter.Update(dbDataSetA.Accounts);
but there are concurrency exception:
System.Data.DBConcurrencyException was unhandled Message=Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
So how should I commit bindingsource changes to DB, guys?
POST EDIT I got this exception when I start the program, then click on second row in DataGridView and then on third and this time program raise a concurrency exception. Hope his help get this issue more detailed.
Thanks in advance, guys!
Had the same problem. Trick is, once you update table, you should "empty"
GetChanges()
. You do that by calling methodAcceptChanges()
. So...It should work, provided it is the same problem.
Something like this?
Then reassign dbDataSetA as DataSource if needed and user has to enter data again.
You could use an Adapter in combination with a command builder, something like this :
Maybe oversize but can you try to use Transaction just read this Post, could be helpful :
Transactional sqlite