Benutzerspezifisches Paging mit SQL Server 2005 implementieren

Damit man seitenweise Daten anzeigen lassen kann, müssen die Steuerelemente ListView und DataPager verbunden und zum Beispiel mit einem SQL-Server verwendet werden. ZDNet zeigt, wie das geht.

In den vorausgegangenen Artikeln wurden die Grundlagen der Verwendung des ListView-Steuerelements besprochen und erklärt, wie es sich mit dem DataPager-Steuerelement verbinden lässt. In diesem Betrag geht es nun darum, wie man diese Steuerelemente mit einem SQL-Server-2005-Backend verwendet, um eine benutzerspezifische, seitenweise Anzeige von Daten (Paging) zu implementieren, bei der nur eine Teilmenge der Daten abgerufen wird.

Wann werden Daten geladen?

Standardmäßig rufen .NET-Datenkomponenten wie ListView und GridView sämtliche Ergebnisse einer Anfrage ab, wenn Daten zur Anzeige auf einer Seite geladen werden. Besser ist es jedoch, nur die Daten zu laden, die auf der Seite tatsächlich angezeigt werden. Wenn der Benutzer dann zu einer anderen Seite navigiert, wird sie von der Backend-Datenquelle geladen und dargestellt.

Dadurch ist mehr Kommunikation zwischen der Applikation und der Datenbank erforderlich. Aber das ist ein geringer Preis dafür, dass die ressourcenintensive Arbeit, ein komplettes Datenset für jede Seite zu laden, vermieden wird.

Hinweis: Dieses Verfahren ist nur bei größeren Datenmengen effizienter.

Datenteilmengen mittels SQL Server 2005 erzeugen

SQL Server 2005 vereinfacht das Abrufen von Teilmengen einer Datenquelle mit Hilfe der Funktion T-SQL-row_number. Diese Funktion ermöglicht es, eine Teilmenge von Anfrageergebnissen auszugeben. Ein Partitionieren und Sortieren nach Klauseln der row_number-Funktion stellt alles bereit, was man dafür braucht. Die Partitionierung wird über die Over-Klausel erzielt. Sie legt eine Partitionierung und Sortierung des Zwischenergebnis-Sets fest, bevor die row_number-Funktion angewendet wird.

Das Ergebnis der Anwendung der row_number-Funktion wird in eine Unterabfrage eingeschlossen, die eine temporär benannte Ergebnismenge ausgibt. Die benötigten Daten werden dann dieser temporären Ergebnismenge entnommen. Zur Veranschaulichung wird hier eine einfache Datenbank mit dem Namen „Test“ verwendet. Sie enthält eine Tabelle namens „People“, die mit folgendem T-SQL erzeugt wurde:


Der nächste T-SQL-Ausschnitt gibt durch Verwendung der row_number-Funktion eine Gruppe von fünf Datensätzen aus der People-Tabelle aus. Die temporäre Tabelle wird innerhalb der Unterabfrage mit dem Namen „PeopleRecords“ versehen. Die row_number-Funktion nummeriert die Zeilen in der Unterabfrage gemäß der ORDER-BY-Klausel. Die äußere oder Hauptabfrage wählt die benötigten Datensätze mittels einer WHERE-Klausel aus, die auf die Unterabfrage angewendet wird.


Die Ausgabe liefert fünf Datensätze, weil die Anfangsnummer (3) und die Endnummer (7) der Datensätze im Ergebnis-Set enthalten sind. Die Zeilen werden nach ihrer Stelle in der ORDER-BY-Klausel der Unterabfrage nummeriert, die die Datensätze nach dem Nachnamen sortiert. Eine ASP.NET-Applikation kann diese Funktion von SQL Server 2005 verwenden, um große Datenmengen effizient durchzublättern.

Themenseiten: Anwendungsentwicklung, SQL, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Benutzerspezifisches Paging mit SQL Server 2005 implementieren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *