Ich erstelle eine Datenbankanwendung mit Visual C# Express und MySQL. Das Problem ist, dass ich nur Daten aus den C# -Formularen in der Datenbank speichern möchte, wenn die Daten tatsächlich geändert wurden. Wenn ich nun auf die Schaltfläche "Speichern" klicke, werden alle Felder im Formular angezeigt gespeichert in der Datenbank, ob sie geändert worden sind oder nicht.Werte nur dann in der Datenbank speichern, wenn sie geändert wurden
Die Lösung, die ich mit gekommen sind, nur für jedes Feld in der Form zu überprüfen, ob es entsprechend den SQL-Befehl geändert wurde ändern und dann, das heißt
//when the details are loaded into the form
String strOriginalName = txtFirstname.Text;
//when the save button is checked
if(strOriginalName != txtFirstname.Text)
{
String strUpdate = "UPDATE table SET firstName = txtFirstname.Text";
MySqlCommand cmdUpdate = new MySqlCommand(strUpdate, connection);
cmdUpdate.ExecuteNonQuery();
}
Hat jemand eine bessere oder alternative Lösung? Danke für deine Hilfe, wenn ich in irgendeinem Teil vage war, lass es mich wissen und ich kann versuchen, es weiter zu erklären.
Wie werden die Daten abgefragt, die im Formular angezeigt werden sollen? Führen Sie eine MySQLCommand() aus und die Ergebnisse in einer Tabelle und Bindung an die Spalten der Tabelle abrufen? Benutzerdefinierte Liste mit Eigenschaften für jedes Feld? –
DRapp
Ich weiß, dass das ziemlich alt ist, aber ich benutze das '.Tag'-Feld, um den ursprünglichen Wert zu speichern und mache dann meine Vergleiche damit. Wenn Sie mit mehreren Feldern arbeiten, erstelle ich die Aktualisierungsabfrage nur mit den Feldern, in denen sich die Werte geändert haben. '.Tag' kann auch benutzerdefinierte Objekte speichern, sodass Sie den Feldnamen, den Typ und den ursprünglichen Wert dort eingeben können, um die Abfrage einfacher zu erstellen. –