Wie man die Anzahl der Zeilen aus NpgsqlDataReader
Ich versuche, um die Anzahl der Zeilen aus der NpgsqlDataReader nach der Verwendung einer select-Anweisung. Der Grund, warum ich versuche zu prüfen ist, um zu sehen, ob es irgendwelche Daten, die eine einzelne Zeile, oder, wenn es mehrere Zeilen, bevor Sie mit den Daten arbeiten. Jede Hilfe wird sehr geschätzt.
Dies geschieht in C# .NET 4
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas googeln die NpgsqlDataReader würde zu sein scheinen sehr ähnlich zu der sqldatareader. Der sqldatareader nicht über einen integrierten Weg, um die Zeile zu zählen. Es erscheinen würde Sie hätte zu Durchlaufen und führen Sie Ihre eigenen zählen, wenn Sie wollte, um die Zeilenanzahl.
Wenn die
NpgsqlDataReader
erbt vonDbDataReader
als andere DataReaders tun, können Sie überprüfen, mitwenn es irgendwelche Ergebnisse. Aber ich glaube nicht, dass Sie die tatsächliche Anzahl der Zeilen ohne Schleife durch den Leser....
Wenn Sie nur möchten eine schnelle Vorschau.
1.) nicht ein Ergebnis
2.) hat ein Ergebnis
3.) hat mehrere Ergebnisse
könnten Sie ausführen, die ähnlich wie SQL-Anweisung mit einem LIMITer. Dies sollte sehr schnell sein. Und nach, dass die Ausführung, Sie gehen zum abrufen der gesamten Daten.
Beispiel:
select * from [TABELLE] where [BEDINGUNG] GRENZWERT 2
wenn Sie 0-Zeilen, kein Ergebnis /
wenn man 1 Zeile, eine Ergebnis - /
wenn Sie 2 Zeilen, die mehrere Ergebnisse
Ich würde auch gerne die Anzahl der Zeilen, die für den Fortschritt-bar, aber es scheint, ich kann nicht Durchlaufen, zweimal ist zu viel Arbeit für nur Fortschritte zeigen 😉
Erstellen Sie eine proxy-Klasse, ist ein Kind der
NpgsqlDataReader
- und wo Sie neu zu implementieren iterator (erweitertIEnumerable
), die implizit Durchlaufen zunächst bis zu 2 Zeilen, wenn Sie entweder.Read()
oder Fragen.CountClass
- dann gibt es diese 2 aus seinem cache, bevor Sie direkt das Lesen der rest.