Best Practice? Speichern + Updaten

  • C#

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

    Best Practice? Speichern + Updaten

    Hallo,

    ich bin momentan auf suche nach der best practice zum speichern bzw. verändern von objekten in einer datenbank.

    Ich habe die Klasse Personen (ID, Vorname, Nachname) und in ein und derselben form soll es möglich sein mitarbeiter neu zu erstellen oder eben zu verändern.

    Momentan Löse ich das so, dass wenn ich die form aufrufe ein mitarbeiter-objekt mitgegeben werden kann, wenn ich das mache, dann schaltet die form auf
    "update-modus", sodass z.B. die Felder mit den Werten befüllt werden und der speicherbutton beim klicken die Daten zurückspeichert, aber ich bin mir sicher, dass
    ich auf dem falschen weg bin, bzw. es um welten bessere lösungen dafür gibt.

    Ich würde es sauberer finden, wenn diese Logik in der Klasse stattfindet, aber ich weiß leider nicht wie ich das umsetzten soll.
    Kann mir da evtl. jemand ein Beispiel geben?

    C#-Quellcode

    1. public partial class Form1 : Form
    2. {
    3. private Mitarbeiter mitarbeiter;
    4. private bool isEdit = false;
    5. public Form1(Mitarbeiter _mitarbeiter)
    6. {
    7. InitializeComponent();
    8. // Falls mir ein bestehender Mitarbeiter gegeben wird, dann auf "Edit-Mode" umschalten
    9. if (_mitarbeiter != null)
    10. {
    11. activeEdit(_mitarbeiter);
    12. }
    13. }
    14. private void activeEdit(Mitarbeiter _mitarbeiter)
    15. {
    16. this.mitarbeiter = _mitarbeiter;
    17. this.isEdit = true;
    18. // Felder mit den Mitarbeiter-Daten befüllen
    19. textbox_vorname.Text = this.mitarbeiter.Vorname;
    20. textbox_nachname.Text = this.mitarbeiter.Nachname;
    21. }
    22. private void button1_Click(object sender, EventArgs e)
    23. {
    24. if (isEdit && this.mitarbeiter != null)
    25. {
    26. // Mitarbeiter speichern
    27. activeEdit(this.mitarbeiter.updateMitarbeiter(textbox_vorname.Text, textbox_nachname.Text));
    28. }
    29. else
    30. {
    31. // Neuen Mitarbeiter erstellen
    32. activeEdit(Mitarbeiter.createNewMitarbeiter(textbox_vorname.Text, textbox_nachname.Text));
    33. }
    34. }
    35. }

    Alternativ könntest du die Tabelle direkt an ein Datengrid anbinden. Und die jeweiligen Ereignisse abfangen. Da gibts genug Tutorials. Dein Weg ist jedoch meiner Meinung nach langfristig der bessere, speziell wenn die Datenbank komplexer werden. Wichtiger sind Dinge wie Prüfen auf Dubletten, Schreibfehler, Fehleingaben usw.

    windowsfan schrieb:

    ich bin momentan auf suche nach der best practice zum speichern bzw. verändern von objekten in einer datenbank.
    Ich täte empfehlen: lern erstmal relationale Datenmodellierung, Databinding und typisiertes Dataset (alternativ EntityFramework).
    typDataset und EF bieten eine Art Standard an best practice für DB-Zugriffe, der unbedingt zu beachten ist.
    Aber erstmal die vorgeschalteten Themen verstehen und praktisch anzuwenden erlernen - keinesfalls versuchen, diese Grundlagen zu überspringen!
    codeproject.com/Articles/10309…l-Datamodel-for-Beginners