mySQL Dataadapter - Problem mit negativen Zahlen

MasterDS

Erfahrenes Mitglied
Hallo Zusammen!

Ich habe ein Problem mit dem mySQLDataadapter bei der Update Methode. Ich versuche folgendes:

(DT ist die Datatable, welche Übergeben wird.)

(VB.NET Code)
Code:
...
Dim ConnectionString As String = "Mein String"
        Dim SQLConnection As New MySqlConnection(ConnectionString)
        Dim SQLAdapter As New MySqlDataAdapter("SELECT * FROM " & SQLTabelle, SQLConnection)
        Dim SQLStringBuilder As New MySqlCommandBuilder(SQLAdapter)

        With SQLAdapter
            .UpdateCommand = SQLStringBuilder.GetUpdateCommand
            .InsertCommand = SQLStringBuilder.GetInsertCommand
            .DeleteCommand = SQLStringBuilder.GetDeleteCommand
        End With

        Try
            If DT.Rows.Count > 0 Then
                SQLConnection.Open()
                SQLAdapter.Update(DT) 
            End If
        Catch ex As Exception
            MsgBox("Die Datenbank konnte nicht aktualisiert werden." & vbNewLine & vbNewLine _
           & ex.Message, MsgBoxStyle.Critical, "Verbindungsfehler")

        Finally
            SQLStringBuilder.Dispose()
            SQLAdapter.Dispose()
            SQLConnection.Close()
        End Try

In diesem Fall rufe ich diese Methode auf, um einen bestehenden Datensatz zu aktualisieren. Der Datensatz enthält neben Integer und String Typen auch Felder vom Typ Float.

Wenn das Programm nun versucht eine Zeile zu aktualisieren (beim Statement "SQLAdapter.Update(DT)"), welche in einem der Float - Felder einen negativen Wert hat, bekomme ich folgenden Fehler angezeigt:

"System.Data.DBConcurrencyException" wurde aufgefangen.
Message="Parallelitätsverletzung : Der UpdateCommand hat sich auf 0 der erwarteten 1 Datensätze ausgewirkt."
RowCount=1
Source="System.Data"
...

Bei allen anderen Datensätzen tut er hier schön was er tun soll - die Daten werden aktualisiert. Nur bei negativen Werten tritt dieser Fehler auf.

Kann mir jemand sagen, woran das liegt und wie ich das abstelle?

Danke vorab.
 
Zuletzt bearbeitet:
Hallo!

Falls es jemanden interessiert: Ich habe das Problem mittlerweile durch eine einzige Zeile Code selbst lösen können.

Code:
SQLStringBuilder.ConflictOption = ConflictOption.OverwriteChanges

Diese sorgt dafür, dass beim Update-Query zum identifizieren des betroffenen Satzes nur der Primärschlüssel herangezogen wird. Die Parallelitätsverletzung tritt nun nicht mehr auf.
 
Zurück