@maxvel
Koliko vidim, to je samo primer sa čitanje red-po-red iz tabele, ali ne i kako povući iz baze samo "od-do".
Evo, da izložim kako sa rešio problem. Jednostavnije je od ostalih rešenja na koje sam nailazio.
Prvo, da objasnim šta je šta. litDisplay je literal. Tabela "korisnici" sadrži AutoIncrement polje "KorisnikId"( koje je i primarni ključ). ID poslednje prikazanog reda se čuva u ViewState-u, a ja selektujem "TOP n" redova čiji je ID veći od onog koji je smešten u ViewState( dakle poslednje prikazan ID).
Da bih prešao na sledeći prikaz, dovoljno je da postavim npr button i pritiskom na njega će se učitati sledećih npr. 5 redova tabele.
Code:
protected void Page_Load(object sender, EventArgs e)
{
int n = 4; //broj redova koji će biti prikazani
if (!IsPostBack)
ViewState.Add("KorisnikId", 0); //pamti id poslednjeg prikaza
int kId = (int)ViewState["KorisnikId"]; //uzima vrednost poslednjeg prikaza
//sql komanda koja selektuje n redova iz tabele počev od poslednje prikazanog
string sqlSel = "select TOP " + n + " * from korisnici where KorisnikId > " + kId;
//neka moja klasa koja izvraši SQL upit i vrati DataTable
DataTable tbl = BazaPodataka.IzvrsiUpit(sqlSel);
litDisplay.Text = ""; // u litDisplay prikazuje rezultat
for( int i = 0; i < n && i < tbl.Rows.Count; ++i)
{
litDisplay.Text += tbl.Rows[i]["ime"] + "<br/>"; //prikaži pročitan podatak
}
if (tbl.Rows.Count == 0)
litDisplay.Text += "<br/><b> kraj tabele</b>";
else
ViewState["KorisnikId"] = (int)tbl.Rows[tbl.Rows.Count-1]["KorisnikId"];//pamti id poslednjeg prikaza
}
Ja mislim da je ovo OK rešenje.
