Hallo,
ich bin gerade an einem Tool zur Für eine Testprotokollauswertung.
Die Protokolleinträge sind in einer MySQL-Datenbank gespeichert und es können mehrere Millionen Einträge zustande kommen.
d.h. komplettes einlesen in ein DataSet ist unmöglich. Deshalb will ich zuerst nach protokoll einträgen sortieren welche einen fehler signalisieren (werden über ein flag gekennzeichnet).
da = new OdbcDataAdapter("SELECT * FROM entries WHERE error = 1" , con);
Diese Daten werden dann an ein DataGridView gebunden. Jetzt will ich beim auswählen einer Zeile, in der der fehlereintrag steht, die letzten und die nächsten 20 Zeilen anzeigen lassen. Einen DataAdapter, der dann über den PrimaryKey die entsprechenden Datensätze ausliest, ist vorhanden. Jedoch stellt sich die Frage wohin mit den Daten? In eine neue Tabelle im DataSet? Aber was ist dann, wenn ich die nächste Fehlerzeile anklicke? Wieder eine neue Tabelle mit den ausgelesenen daten erstellen?
hat jemand eine Idee wie man beim Programmaufbau grundsätzlich vorgehen könnte?
Hallo KingRing,
wenn Du sehr viele Datensätze liest ist Dein Ansatz etwas sehr langsam.
Besser : DataReader und DoubleBuffered Listview verwenden. Dann hat der Anwender so gut wie keine Wartezeit. Auch bei mehreren Tausend / Millionen Einträgen.
Erst wenn Du einen Eintrag im ListView anklickst den Eintrag in ein Dataset laden.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hallo,
auch ich stehe vor dem Problem dass ich mehrere Einträge habe.
Meine DB beruht auf Access und wenn die 10000 einträge oder ähnliches hat ist sense.
Daher meine Frage was ist mit DataReader gemeint? nicht etwa der OleDbDataReader ?? ´Daweil habe ich es so gelöst, dass ich in einer Textbox nur 5 Einträge anzeige, und immer nur per SQL weitere 5 abfrage.. geht zwar gut. aber ich muss eben auch die Gesamte Liste laden können bzw was damit anstellen.
Zur Zeit verwendet ich folgendes:
Temp is eine Liste und cPerson eine selbst definierte Klasse, ich mein, ich verstehe warum sich mein Programm die kugel gibt wenn man ewig viel Datensätze auf die Art einließt, aber ich habe leider keine Idee wie ich BufferReader verwenden kann 🙁 google macht mich nicht schlau oder ich suche falsch. z.Z. verwende ich wie gesagt nen Textfeld, kann aber gern auf ListView umsteigen.
lg Lion