Datagriedview speichern aber bestimmt Felder ändern dabei

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

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datagriedview speichern aber bestimmt Felder ändern dabei

    Hallo,

    ich bin gerade mal dran ein kleines program zuschreiben aber ich hänge an einer bestimmten stelle fest.

    Das zurück spreichen in die Datenbank funktioniert ohne Problem aber ich möchte gerne bei Änderung zwei Felder selbst setzen.
    Wie mache ich das nochmal, kann mir jemand einen Tip geben hierzu?

    DANKE!

    Anbei mein Code:

    VB.NET-Quellcode

    1. Private Sub UserVerwaltung_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Packmittel.Hide()
    3. Dim ConStr As String = "Provider=SQLNCLI11;Server=SQL1;Database=SharedData;Trusted_Connection=yes;"
    4. ds.Tables.Add(dt)
    5. da = New OleDbDataAdapter("select * from USER", ConStr)
    6. da.Fill(dt)
    7. Dim cb As New OleDbCommandBuilder(da)
    8. bs.DataSource = dt
    9. DGV_User.DataSource = bs
    10. End Sub
    11. Private Sub UserVerwaltung_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    12. Select Case MessageBox.Show("Änderungen speichern?", "Daten speichern", MessageBoxButtons.YesNo)
    13. Case Windows.Forms.DialogResult.Yes
    14. bs.EndEdit()
    15. da.Update(ds.Tables(0))
    16. End Select
    17. End Sub
    Ich wüsste nicht, inwiefern Adapter.Update Änderungen vergleicht.

    Man könnte hier einen Umweg gehen und die IDs der Geänderten Datensätze zwischenspeichern und nach dem Adapter.Update ein Update auf die geänderten Datensätze ausführen.
    Inwiefern das Sinnvoll ist, wäre noch zu diskutieren.
    Oder du fügst deinen DGV eine weitere Spalte hinzu (falls es da noch keine USER-Spalte gibt), in der du bei Änderungen den User einträgst. somit ersparst du dir das Zweite Update aus meinem andere Vorschlag. So würde ich zumindest vorgehen :whistling:


    MfG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Naja jeder datensatz den du einliest hat eine ID (sollte zumindest immer eine ID haben, ansonsten Datenkonstellation überarbeiten).
    Diese Spalte wird mit in die DataTable geladen. Wenn du nun auf ein DGV-Change Event reagierst, nimmst du da die ID des geänderten Datensatzes.


    Für genaueres wäre etwas Code / oder eine exaktere Beschreibung und Fragestellung sinnvoll.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: