Laden...

Differenz von Datatable-Inhalten erstellen

Erstellt von cyntonix vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.579 Views
C
cyntonix Themenstarter:in
37 Beiträge seit 2009
vor 14 Jahren
Differenz von Datatable-Inhalten erstellen

Hallo an Alle,

ich kämpf seit 2 Tagen schon damit, darum habe ich mir mal gedacht, ich frage hier nach.
Hab sehr viel gegoogelt und auch schon einige Sachen lösen können.
Meine Aufgabe:

  • einlesen von 2 Textdateien in jeweils separaten Datagridview
  • Dort gibt es eine ID (Artikelnummer) welche eine Mengenangabe hat (Anzahl); Die restlichen Spalten sind beschreibend und eigentlich nicht zu beachten
  • Nun möchte ich die Differenz von Datagridview 1 - Datagridview 2 bilden (Menge)
  • ich lese das ganze mit einer OdbcConnection ein damit ich das ganze im Dataset habe

Nun könnt ihr auf dem Screenshot sehen das ich es zumindest geschafft habe die Dateien einzubinden (Dank CodeProject)

Leider weiß ich nichtmal eine Richtung in der ich Suchen/Gehen sollte um die Differenz zu bilden.
Kann mir einer mal paar Schlagwörter/Codeauszüge/Beispiele sagen? Ich möchte hier nicht um fertigen Code fragen aber leider weiß ich garnicht wo ich hinschaun sollte =)

Vielen Dank schonmal
Gruß
Cyn

2.298 Beiträge seit 2010
vor 14 Jahren

Hier stand totaler blödsinn. Sollt mir demnächst den Screenshot genauer ansehen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo cyntonix,

du hast zwei Mengen von Artikelnummern und will davon die (Mengen)-Differenz bilden. Wo genau ist dein Problem?

Das ganze liegt doch ungefähr auf der Ebene von [FAQ] Auflistungs-Elemente suchen und entfernen, lässt sich also, selbst wenn man keine vorgefertigten Klassen nimmt, einfach so runterprogrammieren.

herbivore

5.299 Beiträge seit 2008
vor 14 Jahren

mir scheint, du arbeitest mit untypisiertem Dataset.
Das hat nicht wirklich zukunft, zb liegt bei dir die Anzahl als String vor, dabei ist das int. Bei "Artikelnummer" ist die Bezeichnung falsch, das sind ja wohl keine Nummern. Evtl. gibt es noch Datum-Spalten, die bei dir wohl auch als Strings vorliegen, und sich daher bei der Weiter-Verarbeitung eben nicht wie Datumse verhalten.

Angenommen, du hättest ordentlich typisierte DataTables, dann könntest du die eine durchlaufen.
Von der anderen erstellst du ein DataView, und kannst dann mit DataView.Find den entsprechenden Datensatz auffinden, und dann in einer 3. Datatable die Differenz der Anzahlen speichern.

Der frühe Apfel fängt den Wurm.

C
cyntonix Themenstarter:in
37 Beiträge seit 2009
vor 14 Jahren

@inflames2k:
Ich möchte einen Mengenvergleich machen:

  1. View
    Artikelnummer: 0815
    Menge: 5

  2. View
    Artikelnummer: 0815
    Menge: 6

  3. View
    Artikelnummer: 0815
    Menge: -1

(BTW. Meine lieblingsband)

@ herbivore:
Schau ich mir an...

@ ErfinderDesRades
ich behandle alles als Strings (außer bei der Mengenrechnung werde ich wohl Integer brauchen 😉 )
Muss da nicht großartig aufpassen, da ich über eine API ne Textfile bekomme und die später wieder zurückschiebe, die Konvertierung erfolgt "auf dem Weg"

@ ALL:
Vielen Dank nochmal. Ich melde mich wieder 😉 👍

C
cyntonix Themenstarter:in
37 Beiträge seit 2009
vor 14 Jahren

@ herbivore:
zum Link: das ist leider nicht genau das wonach ich suche. Ich suche nach einer Möglichkeit die pro Datensatz Artikelnummer und Menge von datagridview 1

  • auszulesen
  • im anderen datagridview2 zu suchen
  • diesen Datensatz auslesen
  • Differenz bilden

(das weiterverarbeiten schaff ich allein)

nur fehlt mir hier irgendwie der Gedankenanstoß, da ich sowas noch nie gemacht habe.

Danke schon mal für eure weiter Hilfe (nett hier)

Gruß
Cyn

J
3.331 Beiträge seit 2006
vor 14 Jahren

Nein, herbivore hat recht!

Du musst die DataGridViews vergessen; die sind nur zur Anzeige gedacht. Du musst stattdessen die Inhalte der einen **DataTable **mit den Inhalten der anderen DataTable vergleichen; in beiden Fällen gibt es Rows, und das sind die Listen, die in dem FAQ genannt sind.

Also vergleiche table1.Rows mit table2.Rows. Die Übereinstimmung bekommst du durch row["ID"], die Mengen werden dann durch row["Menge"] verglichen.

Ob das typisierte DataSet hier wirklich Vorteile bringen würde, da bin ich mir nicht sicher. Grundsätzlich würde ich das auch empfehlen. In deiner Situation möchte ich zumindest für die Spalte "Menge" nahelegen, sie wirklich als int zu benutzen.

Gruß Jürgen

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo cyntonix,

davon abgesehen kann man sowas (ich habe mal "DataGridView" durch "Menge" ersetzt) ...

Ich suche nach einer Möglichkeit die pro Datensatz Artikelnummer und Menge [aus Menge 1]

  • auszulesen
  • [in der anderen Menge 2] zu suchen
  • diesen Datensatz auslesen
  • Differenz bilden

... wirklich direkt und leicht runterprogrammieren. Beachte bitte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore