create proc pro1
@pageindex int,
@pagesize int
select * from(select row_number() over(order by articleid) as rownumb,* from articleinfo)t left outer join articleclass c on t.classid=c.classid where t.rownumb>(@pageindex-1)*@pagesize and t.rownumb<=@pageindex*@pagesize
调用
string str='server=.\\sqlexpress;integrated security=true;initial catalog=yysyd.mdf';
int pagesize=3;//每次显示几行
int totalpagesize=0;//总页数
viewstate["pageindex"]="1";
private void bind()
{
sqlconnection con=new sqlconnection(str);
sqlcommand cmd=con.createcommand();
cmd.commandtext="pro1";
cmd.commandtype=commandtype.StoredProcedure;
cmd.parameter.add("@pagesize",pagesize);
cmd.parameter.add("@pageindex",convert.toint32(viewstate["pageindex"]));
sqldataadapter da=new sqldataadapter(cmd);
datatable dt=new datatable();
da.fill(dt);
this.gridview1.datasource=dt;
this.gridview1.databind();
}
private void getcount()
{
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select count(*) from ArticleInfo";
conn.Open();
object obj=cmd.executescalar();
if(obj!=null)
{
int totalrecord=convert.toint32(obj);
if(totalrecord%pagesize!=0)
{
totalpagesize=totalrecord/pagesize+1;
}
else
{
totalpagesize=totalrecord/pagesize;
}
}
}
拖四个按钮
//first
viewstate["pageindex"]="1";
bind();
//上一页
int pageindex=convert.toint32(viewstate["pageindex"]);
if(pageindex>1)
{ pageindex--;
}
bind();
//下一页
int pageindex=convert.toint32(viewstate["pageindex"]);
getcount();
if(pageindex<totalpagesize)
{
pageindex++;
}
bind();
//最后一页
getcount();
int pagesize=totalpagesize.tostring();
bind();
保持初学者的心态!!!