C#构建分页应用的方法分析
本文实例讲述了C#构建分页应用的方法。分享给大家供大家参考,具体如下:
1、SQL语句
WITH[temptableforStockIC]AS( SELECT*,ROW_NUMBER()OVER(ORDERBYCreateTimeDESC)ASRowNumberFROM[StockIC]WHERE1=1ANDModel='FTY765OP' ) SELECT*FROM[temptableforStockIC]WHERERowNumberBETWEEN1AND10
2、后台方法
///<summary> ///表名 ///</summary> privateconststring_tableNane="StockIC"; ///<summary> ///获取库存列表 ///</summary> publicList<StockIcResult>GetStockIcList(StockIcParamparam) { List<StockIcResult>list=newList<StockIcResult>(); stringsql="WITH[temptablefor{0}]AS"; sql+="(SELECT*,ROW_NUMBER()OVER(ORDERBY{1})ASRowNumberFROM[{0}]WHERE1=1{2})"; sql+="SELECT*FROM[temptablefor{0}]WHERERowNumberBETWEEN{3}AND{4}"; StringBuildersqlCondition=newStringBuilder(); List<SqlParameter>sqlParams=newList<SqlParameter>(); //型号 if(!String.IsNullOrEmpty(param.Model)) { sqlCondition.AppendFormat("ANDModelLIKE'%{0}%'",param.Model); } //开始时间 if(param.BeginTime.HasValue) { sqlCondition.Append("ANDCreateTime>=@BeginTime"); sqlParams.Add(newSqlParameter("@BeginTime",param.BeginTime.Value)); } //结束时间 if(param.EndTime.HasValue) { sqlCondition.Append("ANDCreateTime<@EndTime"); sqlParams.Add(newSqlParameter("@EndTime",param.EndTime.Value.AddDays(1))); } //排序 if(String.IsNullOrWhiteSpace(param.OrderBy)) { param.OrderBy="CreateTimeDESC"; } //分页 param.PageIndex=param.PageIndex-1; Int64startNumber=param.PageIndex*param.PageSize+1; Int64endNumber=startNumber+param.PageSize-1; //拼装SQL sql=String.Format(sql,_tableNane,param.OrderBy,sqlCondition,startNumber,endNumber); //执行SQL语句 DataSetdataSet=DBHelper.GetReader(sql.ToString(),sqlParams.ToArray()); list=TranToList(dataSet); returnlist; }
注意:DBHelper.GetReader()方法、TranToList()方法等请自己完善。
一些计算方法
//分页 Int64startNumber=(param.PageIndex-1)*param.PageSize+1; Int64endNumber=startNumber+param.PageSize-1; //总页数=(数据总数+分页大小-1)/分页大小 TotalPage=(TotalCount+PageSize-1)/PageSize;
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#字符串操作技巧总结》、《C#数组操作技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。