Laden...

Spaltenreihenfolge in DataTable ändern

Erstellt von DjBepy vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.119 Views
D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren
Spaltenreihenfolge in DataTable ändern

verwendetes Datenbanksystem: SQL Server 2k

Ahoi zusammen 😃

Ich möchte den Inhalt einer CSV-Datei in die DB schieben. Ich habe eine Klasse, die mir wahlweise die CSV_Datei direkt in die DB schreibt oder eine Datatable draus erstellt sowie eine, die mir die DataTable in die DB schiebt. Funzt auch alles super.

Jetzt ist es aber so, dass das Feld JobNummer nicht in der CSV-Datei steckt, sondern nur im Namen. Ergo ich würde aus der CSV-Datei ein DataTable machen & dann die fehlende Spalte hinzufügen. Da aber die DataTable2DB-Funktion den Inhalt Spalte für Spalte in die DB hämmert, spielt natürlich die Reihenfolge eine Rolle.

Im Notfall muss ich eben die Tabelle der DB anpassen. Das will ich aber vermeiden, da die JobNummer ein Teil des Prim-Schlüssel ist und diese Felder nach unserer Defintion immer am Anfang der Tabelle stehen.

Ergo, ich muss die Spaltenreihenfolge der DataTable anpassen. Nur wie? Oder kann ich über eine Schleife die einzelnen Spalten samt Inhalt aus der einen DataTable raus in eine neue kopieren? Bin für alle Ideen offen . . . .

*Machts gut und danke für den vielen Fisch*

F
84 Beiträge seit 2008
vor 13 Jahren

Moin Moin,

das sollte ohne weiteres lösbar sein.
Schau dir mal DataTable.Merge an.

Du erstellst eine DataTable mit der gleichen Struktur wie die der CSV + dein Feld JobXY.
Dann mergst du die Tabllen einfach und alle gleich lautenden Felder + Inhalte werden zusammengeführt.

Gruß aus Hamburg

D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren

Da war mein Eifer mal wieder schneller. Aber das klingt nach einer eleganten Lösung 😃

Ich habe jetzt die CSV2DataTable-Funktion mal so erweitert, dass man ein Feld mit statischem Inhalt an einer beliebigen Stelle einfügen kann. So habe ich das Problem mit dem Index ändern nicht . . .

*Machts gut und danke für den vielen Fisch*