Frage von gurkenpower5000, 24

C# - INSERT oder REPLACE?

Hallo,

ich würde gerne in meinem Programm eingegebene Werte per SQL Befehl replacen , wenn ein von den Werten in der Tabelle verfügbar ist( also ich habe ISBN und Autor, wenn die ISBN stimmt, dass dann der Autor ändert). Sollte das nicht sein, dann neu einfügen.

Antwort
von ostfriesenjung, 11

Vielleicht so:

INSERT INTO tabelle (feld,feld) values ('wert','wert') ON DUPLICATE KEY UPDATE

Damit werden NEUE Datensätze eingetragen, wenn Sie nicht schon vorhanden sind. Wenn vorhanden, dann werden sie aktualisiert

Kannst du auch entsprechend abändern. Achte darauf in der SQL Tabelle dien richtigen KEY zu setzen.

Antwort
von KnorxyThieus, 14

Hallo,

was suchst du? Die Option, SQL-Befehle in C# einzugeben?

using System.Linq;
var neueBuecher = alleBuecher.Select(
   buch =>
   tabelle.FirstOrDefault(tabellenBuch =>
   tabellenBuch.ISBN == buch.ISBN)
   ?? buch);

Oder wenn du tatsächlich nur den Autor ändern willst:

static void NeueBuecher
   (this IEnumerable<Buch> alteBuecher,
    IEnumerable<Buch> tabelle)
{
   foreach (var buch in alteBuecher)
      buch.Autor = tabelle.FirstOrDefault(
      tabellenBuch => tabellenBuch.ISBN == buch. ISBN)
      ?. Autor ?? buch.Autor;
}

Könnte man sicherlich auch noch mit Select umschreiben, wenn es nötig ist ...

Kommentar von gurkenpower5000 ,

Man hat paar Textboxen, wo man die Daten eingibt. Dann sendet man sie per Button ab. Die werden dann, wenn schon vorhanden, ersetzt oder neu hinzugefügt.

Kommentar von KnorxyThieus ,

Ach so! Und die bestehenden Bücher sind im kompatiblen Format gespeichert, d. h., weitere Infos als ISBN & Autor gibt es nicht?

Kommentar von gurkenpower5000 ,

Na genau, also es gibt eine Buch ID, die sich automatisch erhöht, die ISBN und den Autor

Keine passende Antwort gefunden?

Fragen Sie die Community