[ bokac @ 16.08.2004. 10:51 ] @
Pravim ASP.NET C# aplikaciju, a zapelo je kod paging rezultata po strani. Situacija je sledeca: MS Access baza: |tabela1| id - AutoNumber, Polje1 - Text, Polje2 - Text, ..... Paging sam zamislio tako da stanje grid-a cuva u ViewState-u, a takodje imam i 2 eksterna dugmeta Previous i Next, kao i dva OleDBCommand-a (cmdNext, cmdPrevious). Evo ga deo koda: Code: ....... private int CurrentPage; private void Page_Load(object sender, System.EventArgs e) { .... if(!Page.IsPostBack) { conn.Open(); cmdNext=new OleDbCommand("SELECT TOP 10 id, Polje1, Polje2 FROM tabela1 ORDER BY id DESC", conn); fillGrid(cmdNext); } } private void fillGrid(System.Data.OleDb.OleDbCommand currentOleDbCommand) { System.Data.OleDb.OleDbDataReader dr; ... conn.Open(); dr=currentOleDbCommand.ExecuteReader(); DataGrid1.DataSource=dr; DataGrid1.DataBind(); dr.Close(); conn.Close(); ViewState["CurrentPage"]=CurrentPage; ViewState[CurrentPage.ToString()]=DataGrid1.Items[0].Cells[0].Text; if(DataGrid1.Items.Count<DataGrid1.PageSize) { btnNext.Enabled=false; } } private void btnNext_Click(object sender, System.EventArgs e) { btnPrevious.Enabled=true; CurrentPage=(int)(ViewState["CurrentPage"]); CurrentPage++; string lastid=DataGrid1.Items[9].Cells[0].Text; conn.Open(); string upit="SELECT TOP 10 id, Polje1, Polje2 FROM tabela1 WHERE id<"+lastid+" ORDER BY id DESC"; cmdNext=new OleDbCommand(upit, conn); fillGrid(cmdNext); } private void btnPrevious_Click(object sender, System.EventArgs e) { btnNext.Enabled=true; CurrentPage=(int)(ViewState["CurrentPage"]); CurrentPage--; if(CurrentPage>=0) { string firstid; firstid=(string)(ViewState[CurrentPage.ToString()]); conn.Open(); cmdPrevious=new OleDbCommand("SELECT TOP 10 id, Polje1, Polje2 FROM tabela1 WHERE id>="+firstid+" ORDER BY id DESC", conn); fillGrid(cmdPrevious); } } Kada ovo pokusam da izvrsim klikom na dugme Next Explorer mi izbaci sledecu gresku: Syntax error (missing operator) in query expression 'id<' Kada postavim breakpoint kod stringa upit, prelaskom misa preko id<"+lastid+" pokazuje mi id="" sto kapiram znaci da nikakva vrednost nije dodeljena promenljivoj lastid. Nije mi jasno kako??? |