Forums Neueste Beiträge
 

TableAdapter.Update -> Parallelitätsverletzung

10/01/2008 - 14:46 von Harald Bacik | Report spam
Ich nutze VB.NET 2005 + ADO.NET zu einer mySQL Tabelle. Ich habe ein typed
DataSet erstellt & arbeite mit TableAdapters. Ich versuche die Daten mit
folgendem Code zu aktualisieren:

Private Function GetChanges() As Boolean
Me.KundenstammGefundenBindingSource.EndEdit()
Return DtsKundenstamm.HasChanges
End Function
Public Function SaveChanges() As Boolean
Try
If GetChanges() = True Then
Me.KundenstammGefundenTableAdapter.Update(DtsKundenstamm)
Me.DtsKundenstamm.AcceptChanges()
Return True
Else
Return False
End If
Catch ex As Data.DBConcurrencyException

Dim customErrorMessage As String
customErrorMessage = "Concurrency violation" & vbCrLf
customErrorMessage += CType(ex.Row.Item(0), String)
MessageBox.Show(customErrorMessage)

Return False
End Try

End Function

Doch bei -> Me.KundenstammGefundenTableAdapter.Update(DtsKundenstamm)
bekomme ich einen Parallelitàtsfehler. Bei Nachforschungen im Netz habe ich
herausgefunden, dass dieser Fehler im Zusammenhang mit AutoIncrement Spalten
zusammenhàngt. Interessant ist nur, dass das Update auf diese Spalte nicht
zugreift. - "Nur" in der Where Klausel.

Weiß jemand, wie ich herausfinden kann, wo genau das Problem liegt!?

PS: - Der Code des Update Kommandos wurde durch den Wizzard automatisch
erstellt.
 

Lesen sie die antworten

#1 Peter Fleischer
11/01/2008 - 10:59 | Warnen spam
"Peter Götz" schrieb im Newsbeitrag
news:%

PS: - Der Code des Update Kommandos wurde
durch den Wizzard automatisch erstellt.



Dann rate ich mal, dass die Where-Klausel im
Update- u. DeleteCommand alle Felder des
Datensatzes erfasst.



@Harald,
dafür gibt es im Designer ein Hàkchen, was standardmàßig gesetzt ist und die
für die Prüfung passenden WHERE-Klassel anfügt. Die in der WHERE-Klausel
aufgeführten Felder der Datenbank werden mit den Originalwerten im Client
verglichen. Wenn da keine anderer in der Datenbank geàndert hat (auch nicht
dein Programm über eine weitere Connection/DataSet/DataTable), dann kann
auch ein umpassend ausgeführtes AcceptChanges die originalwerte veràndert
haben.

Viele Gruesse

Peter

Ähnliche fragen