Benutzer mit den meisten Antworten
Neuer Datensatz in ein DataSet importieren aus einer Textdatei

Frage
-
Hallo zusammen,
ich habe eine Text-Datei mit ca. 30.000 Zeilen.
Mit einer If Else Anweisung selektiere ich die Zeilen, die Importiert werden müssen. Dies funktioniert auch ganz gut.
Nun möchte ich aber in dem Anweisungblock der If Anweisung meine Zeile (Aufbau: FeldInhalt1;FeldInhalt2; .... FeldInhalt30) in ein DataSet schreiben.
Ich finde leider nichts, wie ich meine eingelesene Zeile einfügen kann.
Danke Euch für Eure Hilfe
Mike
Antworten
-
Hallo Mike,
zunächst musst Du Dir eine entsprechende DataTable erzeugen,
die zu den Spalten und deren Datentypen passt, siehe
Erstellen einer 'DataTable' (ADO.NET)Die Zeile selbst mit String.Split zerlegen - sofern Du es nicht bereits getan hast,
und numerische, Datumsspalten ggf. konvertieren.Das Anfügen am Ende wäre das leichtere, dafür führe DataTable.Rows.AddRow aus,
siehe Gewusst wie: Hinzufügen von Zeilen zu einer DataTableGruß Elmar
- Als Antwort markiert Mike Berger Freitag, 3. Juni 2011 21:10
-
Hallo Mike,
das liegt daran, dass während der Ausführung von Code die Windows Meldungsschleife nicht bedient wird.
Das sinnvollste ist in solchen Fällen die Arbeit in einen BackgroundWorker zu legen,
und den Fortschritt über das ProgressChanged Ereignis anzuzeigen.Die Schmalspur-Variante wäre, Application.DoEvents aufzurufen.
Gruß Elmar
- Als Antwort markiert Mike Berger Sonntag, 19. Juni 2011 14:59
Alle Antworten
-
Hallo Mike,
zunächst musst Du Dir eine entsprechende DataTable erzeugen,
die zu den Spalten und deren Datentypen passt, siehe
Erstellen einer 'DataTable' (ADO.NET)Die Zeile selbst mit String.Split zerlegen - sofern Du es nicht bereits getan hast,
und numerische, Datumsspalten ggf. konvertieren.Das Anfügen am Ende wäre das leichtere, dafür führe DataTable.Rows.AddRow aus,
siehe Gewusst wie: Hinzufügen von Zeilen zu einer DataTableGruß Elmar
- Als Antwort markiert Mike Berger Freitag, 3. Juni 2011 21:10
-
Hallo Mike,
das liegt daran, dass während der Ausführung von Code die Windows Meldungsschleife nicht bedient wird.
Das sinnvollste ist in solchen Fällen die Arbeit in einen BackgroundWorker zu legen,
und den Fortschritt über das ProgressChanged Ereignis anzuzeigen.Die Schmalspur-Variante wäre, Application.DoEvents aufzurufen.
Gruß Elmar
- Als Antwort markiert Mike Berger Sonntag, 19. Juni 2011 14:59