[ bokac @ 21.05.2004. 14:43 ] @
Molim za pomoc, imam sledeci problem:
U pitanju je ASP.NET strana (C#). Na njoj imam DataGrid kontrolu koju punim podacima iz baze (SQL Server). Stvar je u tome da DataGrid prikazuje podatke sortirane (10 po strani). Podesavanja Grid-a ukratko: AllowPaging=true, AutoGenerateColumns=false, AllowCustomPaging=false...)....

Cela stvar radi odlicno kada je u pitanju SqlDataAdapter koji puni DataSet. Tada imam potpunu kontrolu nad prikazom strana, broj vracenih redova i sl.). Problem mi je nastao kada hocu da upotrebim SqlDataReader (sa kojim inace imam manje iskustva u koriscenju). Nikako mi ne uspeva da resim problem prikazivanja strana po gore navedenom redosledu. Zanima me kako bi to moglo da se resi bez menjanja samih upita a da stvar radi "bolje" nego sa DataSet-om, naravno zbog performansi. Hvala.
[ ZokiR @ 24.05.2004. 01:35 ] @
Ne postoji neki univerzalni odgovor na ovo pitanje -- ima tu mnogo faktora, kao što su organizacija i veličina podataka koje upit vraća. U većini slučajeva, teško da ćeš poboljšati performanse time što izbegavaš korišćenje DataSeta. Sortiranje i „paging“ se postiže (1) ili tako što učitaš celi rezultat u neku strukturu u memoriji (kao što su DataSet ili DataTable) i onda tu strukturu sortiraš i iz nje vadiš redove koji se prikazuju na strani, ili (2) menjanjem SQL upita tako da vraća samo one redove koje prikazuješ na datoj strani, a mogućnost da se takav upit napravi već zavisi od strukture podataka (npr. kako izabrati samo redove između 30. i 40. da bi se prikazali na trećoj strani?) Ovo drugo vredi koristiti samo ako je količina podataka prevelika, tj. ne može se učitati u DataSet zbog nedostatka memorije.
[ bokac @ 24.05.2004. 08:21 ] @
pa stvar je u tome sto kolicina podataka moze biti prevelika, a ono sto me mozda dodatno zabrinjava je to sto nisam tacno siguran koliko ce potencijalnih korisnika aplikacija da opsluzuje?! Ne bih bas voleo da dodje do zagusenja servera zato sto sam ja koristio DataSet umesto S..D..Reader-a. Mada sto ti kazes ukoliko ne menjam upit kao npr. SELECT TOP 20 FROM ....ili sl. onda je verovatno sve jedno da li sam koristio DataSet ili SqlDataReader. Jel ima mozda jos neko nesto da kaze na ovu temu?
[ SlavkoPar @ 24.05.2004. 10:26 ] @
Batice,
Pogledaj malo Grid paging, a narocito Custom Grid Paging.
[ bokac @ 24.05.2004. 10:58 ] @
OK pogledao sam pa sta sa tim?