Benutzerspezifisches Paging mit SQL Server 2005 implementieren

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.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

UPDF: PDF-Software zu einem Viertel des Preises von Adobe

PDF-Bearbeitungssoftware jetzt im Black Friday Sale mit 50 Prozent Rabatt!

10 Stunden ago

Neuer Bedarf an Workplace Services durch DEX und KI

ISG untersucht deutschen Workplace-Services-Markt. Digital Employee Experience (DEX) gilt als Schlüssel für neues Wachstum.

10 Stunden ago

SEO-Beratung von Spezialisten wie WOXOW: Deshalb wird sie immer wichtiger

Wer bei Google mit den passenden Suchbegriffen nicht in den Top-Rankings gefunden wird, der kann…

1 Tag ago

Umfrage: Weniger als die Hälfte der digitalen Initiativen sind erfolgreich

Unternehmen räumen der Entwicklung technischer und digitaler Führungskompetenzen ein zu geringe Priorität ein. Gartner fordert…

2 Tagen ago

Google schließt zwei Zero-Day-Lücken in Android

Betroffen sind Android 12, 13, 14 und 15. Google sind zielgerichtete Angriffe auf die beiden…

2 Tagen ago

Gefährliche Weiterentwicklung der APT36-Malware ElizaRAT

Schadprogramm der pakistanischen Hackergruppe APT36 weitet seine Aktivitäten aus und verbessert seine Techniken.

2 Tagen ago