首先就是SQL TOP后面跟变量的问题..SQL2000是不允许TOP后面跟变量的.
所以 如果你是2000的话就只能动态执行了..EXCE('select top' +@pagesize+' from table where ....')
第二就是页码的总数问题..这个说起来就很复杂了我也只能大概说一下几点要注意的
1.页码是总数是总条数/分页显示数.如果用INT 行的话.1/5 也是0 而我们要的是1 整型会自动帮你4舍5入.
但是我们的分页总数又一定要整型所以要经过判断来取舍.
double PageCount=1.0*user.Up_Get_UserTypeCount_One()/Convert.ToInt32(Application["SchoolMate_WordCount"]);
if (PageCount > Convert.ToInt32(PageCount))
{
MutilPage1.CountSum = Convert.ToInt32(PageCount) + 1;
}
else
{
MutilPage1.CountSum = Convert.ToInt32(PageCount);
}
先是把DOUBLE的值先算出来.用条件语句来过滤比如0.4 0.4转换成整型是0 0.4>0 所以要加一.这个就是最重要的方法想了1个晚上的结果
2.显示第一页时..是不放任何页码的也是就?page=*;所以在Querytring.getpage 中如果为空的话返回0页码 在数据层进行判断如果为0的话MAXID为0并且
根据以传进来的PageSize来现实前几条.
这就是以上几个难点..要注意的地方.写存储过程的话要小心比较容易出错.因为是动态执行所以都可以保存只有在编译时才会出错一般都要用端点才能看出来
毕竟前面的判断太多.不推荐用肉眼观察会近视.
浙公网安备 33010602011771号