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?
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
- public partial class Form1 : Form
- {
- private Mitarbeiter mitarbeiter;
- private bool isEdit = false;
- public Form1(Mitarbeiter _mitarbeiter)
- {
- InitializeComponent();
- // Falls mir ein bestehender Mitarbeiter gegeben wird, dann auf "Edit-Mode" umschalten
- if (_mitarbeiter != null)
- {
- activeEdit(_mitarbeiter);
- }
- }
- private void activeEdit(Mitarbeiter _mitarbeiter)
- {
- this.mitarbeiter = _mitarbeiter;
- this.isEdit = true;
- // Felder mit den Mitarbeiter-Daten befüllen
- textbox_vorname.Text = this.mitarbeiter.Vorname;
- textbox_nachname.Text = this.mitarbeiter.Nachname;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- if (isEdit && this.mitarbeiter != null)
- {
- // Mitarbeiter speichern
- activeEdit(this.mitarbeiter.updateMitarbeiter(textbox_vorname.Text, textbox_nachname.Text));
- }
- else
- {
- // Neuen Mitarbeiter erstellen
- activeEdit(Mitarbeiter.createNewMitarbeiter(textbox_vorname.Text, textbox_nachname.Text));
- }
- }
- }