![]() |
ms-sql/vb.net dataset/repeater splitten oder limitieren
Morgen!
Also ganz einfach, ich lese per stored procedure aus einer Tabelle am SQL-Server Daten in ein Dataset ein. Diese gebe ich dann mit einem Repeater in einer Webform aus. Jetz möchte ich aber nur zb. jeweils 10 Einträge pro Seite haben, also muss ich entweder: - per SQL Statement limitieren - das Dataset verkleinern - oder den Repeater ein Start und Endwert beibringen Fragt sich nur, wie ich das mache ;) Meine bisherigen Ideen: Ich kann ein pseudo limit in sql basteln (SELECT top 10 * FROM bla WHERE id not in (SELECT top 10 id FROM bla) - gefällt mir einerseits nicht, anderseits brauch ich ein paar Daten aus der ersten Zeile der Tabelle (gut, die liesen sich auch anders auslesen). Ich kann im Dataset alle Reihen einzeln löschen, die ich nicht haben will. Ja, mehr ist mir leider nicht eingefallen. Am liebsten wärs mir ein Resize vom Dataset zu machen zb von Wert 10-20, alle anderen wegwerfen oder dem Repeater eine Start- und Endposition angeben - nur geht das? und wie? Hoffe, dass mich irgendjemand versteht ;) und mir sagen kann was da am schnellsten, sinnvollsten, (besten) ist.. mfg Thomas |
nö nö, besser das problem an der wurzel anpacken. mysql kann das ohnehin vorbildlich: SELECT x FROM y WHERE z LIMIT offset, rowcount. und offset bzw. rowcount kannst du der stored procedure ja als parameter übergeben.
|
ja mysql kann das, nur ms-sql nicht :motz: wollt ich ursprünglich so machen, aber des geht so nicht - nur über den umweg
SELECT top 10 * FROM bla WHERE id not in (SELECT top 10 id FROM bla) werds wahrscheinlich aber eh so machen (müssen)... mfg Thomas |
Lässt sich leider nicht anders lösen ...
Siehe hier http://www.aspheute.com/artikel/20000403.htm ist zwar classic asp, aber vergleichbar... LG Joerg |
sorry, nicht genau gelesen. beim MS SQL nehm ich immer
SET ROWCOUNT 100; aber das ist natürlich auch nicht besser oder schlechter als TOP. |
nachdem es bei dem Geschichtl um Beiträge/Seite (ala Forum) ging, hab ich das über ein blätterbares Datagrid gelöst - mal schaun wie lang sich das bewährt ;)
mfg Thomas |
am besten, wie von den vorpostern direkt im sql statement lösen - geht zwar auch, dass man bei der fill-methode des dataset objects eine anzahl angibt, sollte man aber nicht verwenden, da hier erst clientseitig eine einschränkung gemacht wird.
also z.b. 100 sätze übertragen, aber dann nur 10 angezeigt. bevorzugte lösung kommt halt auch immer auf die datenmenge an, mit der du zu tun hast. fg -hannes |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag