| 

.NET C# Java Javascript Exception

1
Um für unsere Anwendung eine Konvertierung von Alt-Daten vorzunehmen, haben wir eine WindowsForms Anwendung geschrieben. Diese import z.B. unsere Kunden. Im alten System hatten die eine fortlaufende ID. In unserem neuen System werden als ID GUID´s erzeugt.

Nun schreibe ich eine Tabelle, wo alte ID und die neu vergebene GUID hinterlegt werden.

Nun möchte ich Kundenvorgänge übertragen. Also lese ich die komplette KonvertierungsTabelle ein und beginne den Kundenvorgang zu übertragen. Wenn ich auf das Feld "KundenID" komme, stze ich auf die BindingSource einen Filter mit "ID=..." und überprüfe, ob die BS was "anzeigt"

Bei unseren Kunden geht das ganze noch. Aber wenn dann die Artikel und so weiter dazu kommen, dann wird es sehr umfangreich. So dauert z.b. der Schritt zu unseren Artikeln (circa 18.800) die Produktionsschritte zu konvertieren über 15 Stunden.

Meine Frage daher: Ist BindingSource.Find hier evtl. schneller/performanter? Oder muss ich dass über .Filter weiterhin machen?
News:
17.05.2012
MyKey0815 1,6k 2 9
1 Antwort
1
Wenn ich auf das Feld "KundenID" komme, stze ich auf die BindingSource einen Filter mit "ID=..." und überprüfe, ob die BS was "anzeigt"

Mit "ich" meinst Du hier nicht Dich als Anwender, der vor dem Windows-Forms-Programm sitzt, sondern den von Dir geschriebenen Programmcode, richtig? Ganz ehrlich: dann fang nochmal von vorne an. Datenmigration macht man nicht, indem man die Daten durch eine UI-Komponente wie die BindingSource pumpt. Wenn Du das ganze nicht gleich mit einem SQL-Skript abhandelst, dann solltest Du ADO.NET benutzen und das UI nur zum Anstoßen des Prozesses und zum Anzeigen des Fortschritts. Meistens reicht dann sogar eine Kommandozeilen-Anwendung.
17.05.2012
Matthias Hlawatsch 12,8k 3 9
Nun, ich lese Zeile für Zeile die Quelldaten ein und "überarbeite" sie gegebenfalls (umwandelns von ID´s ind GUID und so). Daraus erzeuge ich dann einen SQL-Script, der als letztes dann an die Ziel-Datenbank gesendet wird.
MyKey0815 17.05.2012
Schön. Und wofür brauchst Du dabei eine BindingSource, eine "Quelle für Datenbindung"? Welche Daten möchtest Du woran binden?
Matthias Hlawatsch 17.05.2012
Matthias hat Recht. Du solltest es mal mit SSIS (DTS) oder SQL-Skripten probieren. Du wirst erstaunt sein, wie dramatisch sich die Performance verbessern wird :-)
mblaess 19.05.2012
Ich erwähte (leider) nicht, dass meine Quelle aus MySQL 3.51 Daten besteht. Da kann ich ja nicht mit SSIS arbeiten.
MyKey0815 20.05.2012

Stelle deine Performance-Frage jetzt!