Diese Antwort kommt vielleicht etwas spät, aber vielleicht hilft sie anderen.
In vielen Fällen reicht es aus, die Anzahl der bisher gelesenen Datensätze anzuzeigen. Dies könnte durch Behandlung des DataTable.RowChanged-Ereignisses erfolgen. Anhand einer Testimplementierung konnte ich überprüfen, dass das Ereignis für jede Zeile ausgelöst wird, die von der DataAdapter.Fill-Methode hinzugefügt wurde. Bei der Behandlung des Ereignisses können Sie die Anzahl der gelesenen Datensätze erhalten, indem Sie sich die DataTable.Rows.Count-Property
ansehenNormalerweise lese ich die Daten in einem Hintergrund-Thread, der ein Label oder einen Listbox-Eintrag aktualisiert. Die Methode, die die GUI tatsächlich aktualisiert, puffert die Aktualisierungen des Labels, so dass die GUI-Änderungen nur einmal pro Sekunde auftreten, um ein Flackern zu verhindern.
Hoffe das hilft.
Sascha