DataTable per Code füllen

06/03/2009 - 11:27 von Heiko Bauer | Report spam
Hallo!

Ich habe in meiner Applikation eine Auflistung von ca. 10.000 Objekten, die
ich mit hoher Performance in ein DataTable-Objekt einfügen muss.

Die Objekte haben drei Eigenschaften: "Messwertname", "Messwertergebnis",
"Messzeitpunkt".

Der DataTable hat die Felder:
"Messzeitpunkt", "Messergebnis für Parameter 1", "Messwertergebnis für
Parameter 2", (ca. 70 verschiedene Parameter).

Im Moment sieht mein Algorithmus so aus:
- In einer Schleife durch alle Objekte durchgehen
- Nachschauen, ob für den Messzeitpunkt schon eine Zeile in der DataTable
existiert (mit datatable.SELECT, extrem langsam)
- Wenn Zeile existiert, dann dort den Wert des Objektes eintragen
- Wenn noch keine Zeile existiert, dann eine neue mit den Objektdaten
anlegen.

Da das bis zu 2 Minuten dauert, suche ich jetzt schon seit Tagen nach einer
Alternative.
Aktuell hab ich gelesen, dass man die "LoadDataRow"-Methode nehmen kann, die
automatisch schaut, ob eine Zeile existiert und dann selbst ein Add oder ein
Update durchführt. Allerding ist dafür ein PrimeryKey nötig, der nur integer
sein darf (was übrigens die Dokumentation verschweigt !!!!). Außerdem sind
meine Zeilen ja in jeder Objektschleife mit nur einem der Messwerte gefüllt,
es müsste also ein "Merge" innerhalb der Zeile gemacht werden, was
vermutlich gar nicht funktioniert.

Kann mir jemand einen sinnvollen Tipp geben, wie ich das mit extrem guter
Performance hinbekommen kann? Googglen hat mir in diesem Fall ausnahmsweise
keine Erkenntnisse gebracht...

Vielen Dank!
Heiko
 

Lesen sie die antworten

#1 Frank Dzaebel
06/03/2009 - 12:46 | Warnen spam
Hallo Heiko,

Von was für einer Datenquelle willst/musst Du die
Daten in Deinen DataTable einfügen.
Erklàren mehr die globaleren Anforderungen
(es könnte ja eine ganz andere Lösung geben).
Zum Beispiel assoziiert man mit Massenkopien gerne:

[Massenkopiervorgànge in SQL Server (ADO.NET)]
http://msdn.microsoft.com/de-de/lib...5da1a.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen