Daten aus txt-File einlesen und mit Datenbank vergleichen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
Ich habe es so gelöst, dass für jede Spalte eine Liste erstellt wird und in diese Listen die jeweiligen Daten importiert werden.

Es wäre einfacher, die Zeilen direkt auf Objekte zu mappen.

Beispiel:

class Product
{
  public string Id { get; set; }

  public string Name { get; set; }

  public decimal Price { get; set; }

  /* etc. ... */
}

// mapping:
var products = File.ReadAllLines("productData.csv")
  .Skip(1) // skip headline row
  .Select(line => line.Split('\t'))
  .Select(column => new Product
  {
    Id = column[0],
    Name = column[1],
    Price = decimal.Parse(column[2]),
    /* etc. ... */
  });
Nun soll das Programm mithilfe der ProduktID (Primärschlüssel) die Spezifikationen aus der Datenbank nehmen und diese in einer neuen Tabelle speichern.

Soweit ich das verstehe, hat das nun nichts mehr mit der Datei zu tun?

Um mit der Datenbank zu kommunizieren, wäre es zunächst ratsam, die MySql.Data-Bibliothek in das C#-Projekt zu integrieren und das Tutorial von dev.mysql.com zu nutzen, um mit deren API vertraut zu werden. Auch in anderen Webartikeln findest du kurze Beispiele (wie hier). Des Weiteren solltest du dich mit SQL befassen, um eigene Queries formulieren zu können.

Um Daten aus der Datenbank zu holen, brauchst du einen SELECT-Query. Mit dem kannst du auswählen, von welcher Tabelle du welche Zeilen mit welchen Spalten du erhalten möchtest.

Das Einfügen von Daten klappt wiederum mit einem INSERT-Query.