Dataset bei gleichem Spaltenninhalt Zeile integrieren, nicht neu anlegen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Dataset bei gleichem Spaltenninhalt Zeile integrieren, nicht neu anlegen

    Hallo Leute,

    ich füge einem Dataset, Daten aus einer Textdatei hinzu. Die werden von mir davor gefiltert und dann eben hinzugefügt.

    jetzt ist meine Frage, wie kann ich, wenn ein Wert schon in einer Tabelle vorhanden ist, sollen die zwei Zeilen "verschmelzen"

    sprich ich habe eine Tablle x und dort eine Spalte y und z
    dort würde jetzt, laut meinem code dann so ausschauen:

    y
    z
    1
    2
    1
    3

    aber ich will, das zuerst überprüft wird ob der Inhalt der Spalte y schon vorhanden ist und dann die zeile hinzugefügt wird:
    y
    z
    1
    23

    Soll ich zuerst alle daten in das dataset übertragen und dann per schleife die Einzelnen Zeilen durchsehen ob dort in der Spalte der Wert eben schon vorhanden ist. oder, was mir lieber wäre, bevor die Zeilen hinzugefügt wird schon überprüfen ob die Vorhanden ist und dann besagte schritte eben durchführen...
    Das kommt jetzt auch n bisken darauf an, von welchem Typ die z-Werte sind. Wenn von String, dann ok, sonst müsstest Du erstmal klar machen, welche Typen und wie dann ein zusammengesetzter Wert aussehen soll.
    In der Annahme, dass String:
    Wie fügst Du eine Zeile zu Deiner DataTable hinzu? Mit DeinDataSet.X.AddXRow(y, z)?
    Dann kommt es ein wenig auf die Datenmengen an. Ich würde es mit folgendem versuchen:

    VB.NET-Quellcode

    1. Dim AlreadyExistingRow = DeinDataSet.X.FirstOrDefault(Function (a) a.y = new_y)
    2. If AlreadyExistingRow Is Nothing Then
    3. DeinDataSet.X.AddXRow(new_y, new_z)
    4. Else
    5. AlreadyExistingRow.z &= new_z
    6. End If
    (aus dem Kopf heraus)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.