Hello,
My application have a datagridview connect to a dataset through the command:
DgvData.DataSource = DataSet.Tables("Table")
When the datagridview recall the event CellEndEdit and the DataAdapter update the DataSet through the command :DataAdapter.Update(DataSet.GetChanges, "Table")
VB2010 return the error:
"Concurrency violation: the UpdateCommand affected 0 of the expected 1 records."
In my applicatio I use other connector to other db for example FireBird,Postgres,Oracle,SqlServer/access and for all except Sqlite work correctly with the same code.
thanks!!!
<hr /><i>mistachkin added on 2012-01-25 21:10:40 UTC:</i><br />
Does your query involve any DATETIME values? What is the schema of the table being updated? Do you have any C# sample code which demonstrates the issue?
Also see ticket [343d392b51].
<hr /><i>anonymous added on 2012-01-26 19:57:34 UTC:</i><br />
No, for all table there is the problem..the database have 600 or more table..
one small table is:
CREATE TABLE [TopTabZona] ([IdZona] VARCHAR(6), [Zona] VARCHAR(30), [IdIstat] VARCHAR(6), [IdCatastale] VARCHAR(4), [IdProvincia] VARCHAR(2), [Cap] VARCHAR(5), [IdStato] VARCHAR(4), [Installazione] SMALLINT, PRIMARY KEY([IdZona]));
the example is in VB:
My class is AdoIn
On New AdoIn:
Connection = New SQLite.SQLiteConnection
Command = New SQLite.SQLiteCommand
DataAdapter = New SQLite.SQLiteDataAdapter
CommandBuilder = New SQLite.SQLiteCommandBuilder(DataAdapter)
then i invoke : adoIn.EseguiQuery("Select * FROM Table","Table",CommandType.Text)
adoIn.EseguiQuery:
Public Sub EseguiQuery(ByVal SQL As String, ByVal TableName As String, ByVal Tipo As Data.CommandType)
Command.CommandType = Tipo
Command.CommandText = SQL
Try
DataSet.Tables(TableName).Clear()
Catch
End Try
Try
Command.ExecuteNonQuery()
DataAdapter.SelectCommand = Command
DataAdapter.Fill(DataSet, TableName)
Catch ex As Exception
Err = "Execute Query : " & ex.Message
End Try
End Sub
then when i click on treeview where there are all tables:
DgvData.DataSource = adoIN.DataSet.Tables("Table")
then on the event "DgvData_CellEndEdit" :
adoIN.DataAdapter.Update(adoIN.DataSet.GetChanges,"Table")
ecc..on all other connector this code work good
thanks
<hr /><i>mistachkin added on 2012-01-30 03:34:21 UTC:</i><br />
I've attempted to reproduce the issue you describe using more-or-less the sample code you provided; however, I have not been able to. I had to add some code to actually make the it work at all (e.g. using a "Data Source" in the connection string and opening the connection, etc).
|