Parallelitätsverletzung - der UpdateCommand hat sich auf 0 der erwarteten 1 Datensätze ausgewirkt

  • VB.NET
  • .NET (FX) 4.0

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Gunngir.

    Parallelitätsverletzung - der UpdateCommand hat sich auf 0 der erwarteten 1 Datensätze ausgewirkt

    Hallo, ich habe mehrere TableAdapter auf einer Form parallel.
    Bei mir funktioniert der erste TableAdapter + DataGridView (DGVKomponente) einwandfrei.
    Wenn man nun den gleichen Quellcode auf DGVBaugruppen (zweiter DataGridView + TableAdapter) umschreibt, kommt immer die folgende Fehlermeldung.
    Leider habe ich trotz suchen (google und im Forum) keinen Lösungsansatz gefunden.

    Parallelitätsverletzung: Der UpdateCommand hat sich auf 0 der erwarteten 1 Datensätze ausgewirkt.


    VB.NET-Quellcode

    1. Try
    2. Me.Validate()
    3. Me.KomponentenBindingSource.EndEdit()
    4. Me.KomponentenTableAdapter.Update(Me.DBDataSet.Komponenten)
    5. Debug.WriteLine("Update of KomponentenBindingSource + KomponentenTableAdapter successful")
    6. Catch ex As Exception
    7. Debug.WriteLine("Update of KomponentenBindingSource + KomponentenTableAdapter failed")
    8. End Try



    ErfinderDesRades schrieb:

    nein. Das Problem kann nur an TableAdaptern auftreten - nicht am DatagridView.Weiters tritt das üblicherweise auf, wenn man mehrere Datasetse befüllt hat - etwa auf verschiedenen Forms.


    leider gab es auf diesen Denkanstoß keine Erklärung. :(
    Hallo ErfinderDesRades, danke für die Antwort.

    Fehlerzeile: Me.BaugruppenTableAdapter.Update(Me.DBDataSet.Baugruppen)
    Fehlermeldung: Parallelitätsverletzung: Der UpdateCommand hat sich auf 0 der erwarteten 1 Datensätze ausgewirkt.

    VB.NET-Quellcode

    1. Private Sub KK_BaugruppenDataGridView_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles KK_BaugruppenDataGridView.CellValueChanged
    2. Try
    3. Me.Validate()
    4. Me.BaugruppenBindingSource.EndEdit()
    5. Me.BaugruppenTableAdapter.Update(Me.DBDataSet.Baugruppen)
    6. Debug.WriteLine("Update of BaugruppenBindingSource + BaugruppenTableAdapter successful")
    7. Catch ex As Exception
    8. Debug.WriteLine("Update of BaugruppenBindingSource + BaugruppenTableAdapter failed")
    9. MsgBox("Update of BaugruppenBindingSource + BaugruppenTableAdapter failed" & vbCr & ex.Message)
    10. End Try
    11. End Sub



    Folgender Code funktioniert einwandfrei:

    VB.NET-Quellcode

    1. Private Sub KK_List_KomponenteDataGridView_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles KK_List_KomponenteDataGridView.CellValueChanged
    2. Try
    3. Me.Validate()
    4. Me.KomponentenBindingSource.EndEdit()
    5. Me.KomponentenTableAdapter.Update(Me.DBDataSet.Komponenten)
    6. Debug.WriteLine("Update of KomponentenBindingSource + KomponentenTableAdapter successful")
    7. Catch ex As Exception
    8. Debug.WriteLine("Update of KomponentenBindingSource + KomponentenTableAdapter failed")
    9. MsgBox(ex.Message)
    10. End Try
    11. End Sub

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Gunngir“ ()

    tja, ich finde da auch kein redundantes Dataset - muss also woanners dran liegen.
    vlt. gehst du auch unsachgemäß mit AutoIncrement-Primkeys um.
    Dann tritt Parallelitätsverletzung auf, wenn du erst einen übergeordneten Datensatz anlegst, und anschließend einen ihm untergeordneten Datensatz zufügen / ändern willst.
    Die Tabellen haben keinerlei direkte Verbindung zueinander, es sind 3 eigenständige Tabellen.

    Der Fehler kommt bei jeglicher Veränderung und dem update-Befehl, also auch bei einer einfachen Editierung eines Bool'schen Feldes des DGV.

    Bei dem Komponenten - DGV klappt alles prima.
    Anlegen von neuen Zeilen klappt programmatisch ebenfalls ohne Probleme.


    Diese IDs wurden frisch im SQLite Manager von Firefox angelegt.

    Selbst bei der Editierung der Bool'schen Werte unter ORG, SPG und UEB kommt der gleiche fehler.

    Programmatisch wurden in dieser Tabelle keine Daten erstellt.

    Vielleicht kommt das jetzt etwas harsch, aber wenn Du willst, kann ich Dir das Projekt in einer PN zu schicken :x (achtung option strict off)
    Die PrimKey - ID-Spalte ist immer AutoIncremented.
    Bei der Befüllung der Daten wird die ID - Spalte nicht selbst beschrieben.
    SQLite sucht sich doch dann selbst die neue Zeilen-ID oder?

    Der selbe Fehler kommt ebenfalls, wenn man alle TableAdapter und BindingSources löscht und neu erstellt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gunngir“ ()

    naja - keine Ahnung.
    Eiglich müsste der Fehler dann immer kommen, wenn du einen Datensatz zufügst.
    Und zwar nicht beim Zufügen, sondern er müsste erst kommen, wenn du den zugefügten Datensatz im Weiteren nochmal änderst. Aber das müsste jede Tabelle betreffen.
    kannst du das Projekt zippen und anhängen?