Anzahl Datensätze einer gefilterten SqlDataSource ermitteln

12/10/2007 - 09:03 von Stefan Dirks | Report spam
Hallo NG,

im Selected-Event der SqlDataSource gibt es die Eigenschaft e.AffectedRows
(e: Klasse SqlDataSourceStatusEventArgs) mit der man die Anzahl der
selektierten Datensàtze ermitteln kann.
Gibt es so eine Möglichkeit für eine gefilterte SqlDataSource auch? Leider
gibt es kein "Filtered"-Ereignis mit AffectedRows...Aus Caching-Gründen ist
es in diesem Fall schon sinnvoll, dass immer die gesamte SqlDataSource
selektiert wird.

Wie müßte man einen "Select Count(id)" auf die gefilterte SqlDataSource
absetzen oder bleibt einem nichts anderes übrig, als mit der
Filterexpression sich seinen eigenen Select count(id) zusammenzustellen und
diesen bei jedem neuen Filtern neu zu setzen?

Angezeigt werden sollen die Anzahl Datensàtze eines GridViews. Dort gibt es
zwar die Eigenschaft Rows.Count, jedoch gibt diese bei AllowPaging = True
immer nur die Anzahl der angezeigten Zeilen der aktuellen Seite zurück.

Gruß

Stefan
 

Lesen sie die antworten

#1 Stefan Dirks
15/10/2007 - 15:14 | Warnen spam
Scheinbar gibt es tatsàchlich keine andere Lösungsmöglichkeit...

Habe jetzt ein Control von SqlDataSource geerbt und um eben diese Methode
erweitert. Dabei ist eine Count-Query anzugeben. Über die
FilterExpression-Eigenschaft wird dann das Select-Statement zusammengesetzt.
Wobei ich bei dieser Lösung nicht um einen zusàtzlichen Select auf der
Datenbank hinweg komme.

Gruß Stefan


"Stefan Dirks" schrieb im Newsbeitrag
news:%
Hallo NG,

im Selected-Event der SqlDataSource gibt es die Eigenschaft e.AffectedRows
(e: Klasse SqlDataSourceStatusEventArgs) mit der man die Anzahl der
selektierten Datensàtze ermitteln kann.
Gibt es so eine Möglichkeit für eine gefilterte SqlDataSource auch? Leider
gibt es kein "Filtered"-Ereignis mit AffectedRows...Aus Caching-Gründen
ist es in diesem Fall schon sinnvoll, dass immer die gesamte SqlDataSource
selektiert wird.

Wie müßte man einen "Select Count(id)" auf die gefilterte SqlDataSource
absetzen oder bleibt einem nichts anderes übrig, als mit der
Filterexpression sich seinen eigenen Select count(id) zusammenzustellen
und diesen bei jedem neuen Filtern neu zu setzen?

Angezeigt werden sollen die Anzahl Datensàtze eines GridViews. Dort gibt
es zwar die Eigenschaft Rows.Count, jedoch gibt diese bei AllowPaging =
True immer nur die Anzahl der angezeigten Zeilen der aktuellen Seite
zurück.

Gruß

Stefan

Ähnliche fragen