| 

.NET C# Java Javascript Exception

6
Mit SQL-Server kann ich schreiben:


SELECT ID, Name, ROW_NUMBER() OVER(ORDER BY Name) AS Index
FROM Personen
WHERE Index > 10 and Index <= 20

um die "zweite Seite" zu je 10 Stück zu erhalten. Wie macht man das mit LINQ? Soll ich einfach in der foreach-Schleife die ersten 10 Einträge ingnorieren?
14.07.2009
golo 181 2 5
3
http://msdn.microsoft.com/en-us/library/ms186734.aspx könnte noch hilfreich sein.
golo 14.07.2009
Ganz nebenbei: Dein SQL-Code von oben kann garnicht funktionieren. Auf Fenster-Funktionen wie ROW_NUMBER() kann in der WHERE-Klausel nicht zugegriffen werden, weil diese ablauftechnisch erst nach der WHERE-Klausel aufgebaut werden... Hierbei müsstest du erst deine Abfrage in eine Unterabfrage einschließen und erst dann könntest die 'Index'-Spalte überhaupt erst einschränken!
FrankHell 12.07.2012
5 Antworten
13
(...).Skip(10).Take(10) erfüllt die Abfrage für dein Beispiel.
26.07.2009
gfoidl 9,4k 3 5
6
Die Skip()-Methode überspringt die Anzahl der angegebenen Datensätze.
Die Take()-Methode holt die Anzahl der angegebenen Datensätze ab der Stelle wo Skip aufhört.

Skip(0).Take(10) ist deine Seite 1, du fängst bei Datensatz 0 an (Skip) und willst 10 Datensätze erhalten (Take)

Skip(10).Take(10) ist deine Seite 2, du fängst bei Datensatz Nr. 10 an und lässt dir die 10 folgenden Datensätze ausgeben.

Seite 3: Skip(20).Take(10)
Seite 4: Skip(30).Take(10)
usw.
17.09.2009
schulz3000 390 1 6
3
Das geht mit den Methoden **Skip** und **Take**.
25.07.2009
gfoidl 9,4k 3 5
0
People look for this steps to cheat pokemon go online and so here are the pokecoins generator.
15.01.2017
-4
Hm ok, `Index > 10` geht aber wie sag ich denn `Index <= 20`?
25.07.2009
golo 181 2 5
1
Rückfragen bitte immer als Kommentar zu den Antworten :)
Blauesocke 26.10.2009

Stelle deine .net-Frage jetzt!