Laden...

Datenbankafrage mit Excel Sheet abgleichen

Erstellt von bernd_1980 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.259 Views
B
bernd_1980 Themenstarter:in
19 Beiträge seit 2014
vor 10 Jahren
Datenbankafrage mit Excel Sheet abgleichen

Hallo Forum,
ich habe folgendes Problem und bin mir nicht sicher, ob es eine bessere und / oder schnellere Lösung dafür gibt?

Ich habe eine Datatable von einer SELECT - Anweisung, sowie ein Excel - Sheet.

Die SELECT Anweisung hat 2 Spalten ( ID, Value ), das Excel Sheet > 100.

Jetzt soll die ID Spalte mit der ID Spalte im Excel Sheet abgeglichen werden und wenn die ID übereinstimmt, dann soll die Value Row in die Spalte P1, P2, P3 vom Excel Sheet geschrieben werden.
Nun ist es aber so, dass die Spalten im Excel Sheet nicht unbedingt aus den 3 Spalten P1, P2, P3 bestehen müssen, es können auch 4 sein oder weniger.

Ich habe mir folgendes überlegt wie ich es realisieren kann: ich gehe alle IDs im Excel - Sheet durch, vergleiche sie und schreibe dann das Ergebnis in alle Spalten, worin P1, P2, ... vorkommt.
P1, P2 extrahiere ich natürlich vorher in eine Liste und merke mir so, wieviele es dieser Spalten gibt und an welcher Stelle.

Das Ganze ist somit Brute - Force.

Jetzt würde mich natürlich interessieren, ob es eine bessere, schnellere oder intelligentere Variante gibt?

Danke Euch für Eure Hilfe!

lG

P
992 Beiträge seit 2007
vor 10 Jahren

Hallo bernd_1980,

ich würde mir ein Dictionary mit den IDs in der Excel-Tabelle anlegen (also nur einmal die Tabelle durchlaufen) und als Value die Zeilennummer der Excel-Tabelle nehmen.

Danach dann die ID's aus der SQLECT-Anweisung durchlaufen und über das Dictionary auf die entsprechende Excelzeile zugreifen.

B
bernd_1980 Themenstarter:in
19 Beiträge seit 2014
vor 10 Jahren

Hallo punkdevil,
danke Dir vielmals!

Hört sich relativ simpel an.

Eine letzte Frage hätte ich noch zu deinem Vorschlag.

Wie bekomme ich aber die veränderte Zeile aus dem Dictionary wieder an die richtige Position im Excel File zurückgeschrieben?

Danke Dir vielmals!

lG

2.207 Beiträge seit 2011
vor 10 Jahren

Hallo bernd_1980,

mach dir zwei Objekte. Eins aus der Db, eins aus dem Excel. Die bekommen die Felder ID und was du sonst noch eben brauchst. Dann kannst du die vergleichen. In der ID steht eben dann die Stelle, an der der Datensatz steht (und auch wieder gespeichert werden soll).

Gruss

Coffeebean