DGV-Änderungen werden nicht übernommen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Westerwälder.

    DGV-Änderungen werden nicht übernommen

    Hallo,

    fülle ein DGV via BindingSource
    Mache ich nun Änderungen direkt im DGV (Zelle), werden diese in die Datenbank übernommen.
    Erledigte ich die Korrekturen per Code, werden diese nicht übernommen.

    VB.NET-Quellcode

    1. Private Sub ButtonRK_Datenuebernahme_Click(sender As Object, e As EventArgs) Handles ButtonRK_Datenuebernahme.Click
    2. If Me.Halt Then Exit Sub
    3. If Not Me.Part = "RK" Then Exit Sub
    4. Me.DGV_Rennkalender.EndEdit()
    5. With Me.DGV_Rennkalender.CurrentRow
    6. .Cells("Saison").Value = Me.DTPRK_Datum.Value.Year
    7. .Cells("Rennen").Value = Me.NUDRK_Rennennummer.Value
    8. .Cells("Land").Value = Me.ComboBoxRK_Land.Text
    9. .Cells("Ort").Value = Me.ComboBoxRK_Stadt.Text
    10. .Cells("Datum").Value = Me.DTPRK_Datum.Value
    11. .Cells("Uhrzeit").Value = Me.DTPRK_Uhrzeit.Text
    12. End With
    13. Me.TS_Speichern.Visible = True
    14. End Sub

    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()

    @Westerwälder Mach die Änderungen direkt in der zur BindingSource gehörenden DataTable.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke Rod,

    habe zwischenzeitlich folgende Lösung gefunden:

    VB.NET-Quellcode

    1. Me.DGV_Rennkalender.EndEdit()
    2. Dim DGVItem As Object = CInt(Me.DGV_Rennkalender.Item(0, Me.DGV_Rennkalender.CurrentRow.Index).Value.ToString)
    3. With SystemSetup.DataQuelle ' Bindingssource
    4. .Position = .Find("ID", CInt(DGVItem))
    5. End With
    6. With Me.DGV_Rennkalender.CurrentRow
    7. .Cells("Saison").Value = Me.DTPRK_Datum.Value.Year
    8. .Cells("Land").Value = Me.ComboBoxRK_Land.Text
    9. .Cells("Ort").Value = Me.ComboBoxRK_Stadt.Text
    10. .Cells("Rennen").Value = Me.NUDRK_Rennennummer.Value
    11. .Cells("Datum").Value = Me.DTPRK_Datum.Value
    12. .Cells("Uhrzeit").Value = Me.DTPRK_Uhrzeit.Text
    13. End With
    Gruß Markus
    @Westerwälder Warum machst Du aus einem Integer ein Object und aus diesem wieder ein Integer?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Westerwälder Ich meine dies:

    VB.NET-Quellcode

    1. Dim DGVItem As Integer = CInt(Me.DGV_Rennkalender.Item(0, Me.DGV_Rennkalender.CurrentRow.Index).Value.ToString)
    2. With SystemSetup.DataQuelle ' Bindingssource
    3. .Position = .Find("ID", DGVItem)
    4. End With
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Westerwälder schrieb:

    zeigt an zweiter Stelle ein Object
    Dann solltest Du es nicht erst in ein Integer konvertieren.
    Funktioniert das?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es funktionieren beide Varianten,
    Post 3 und Post 7.

    Habe es mal ohne Umwandlung in Integer getestet:

    VB.NET-Quellcode

    1. Dim DGVItem As Object = (Me.DGV_Rennkalender.Item(0, Me.DGV_Rennkalender.CurrentRow.Index).Value.ToString)
    2. With SystemSetup.DataQuelle ' Bindingssource
    3. .Position = .Find("ID", DGVItem)
    4. End With

    Funktioniert auch, denke ich lasse es nun so.

    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()