WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 14.12.2004, 08:50   #1
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard 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
T.dot ist offline   Mit Zitat antworten
Alt 14.12.2004, 11:23   #2
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

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.
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Alt 14.12.2004, 11:28   #3
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

ja mysql kann das, nur ms-sql nicht 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
T.dot ist offline   Mit Zitat antworten
Alt 14.12.2004, 16:58   #4
JoergStueger
Master
 
Registriert seit: 28.10.2002
Alter: 47
Beiträge: 626


JoergStueger eine Nachricht über ICQ schicken
Standard

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
JoergStueger ist offline   Mit Zitat antworten
Alt 16.12.2004, 12:12   #5
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

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.
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Alt 16.12.2004, 13:19   #6
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

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
T.dot ist offline   Mit Zitat antworten
Alt 16.12.2004, 22:12   #7
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

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
Biri ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:53 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag