C#构建分页应用的方法分析
程序员文章站
2022-09-04 10:41:39
本文实例讲述了c#构建分页应用的方法。分享给大家供大家参考,具体如下:
1、sql语句
with [temptableforstockic] as (
s...
本文实例讲述了c#构建分页应用的方法。分享给大家供大家参考,具体如下:
1、sql语句
with [temptableforstockic] as ( select *,row_number() over (order by createtime desc) as rownumber from [stockic] where 1=1 and model = 'fty765op' ) select * from [temptableforstockic] where rownumber between 1 and 10
2、后台方法
/// <summary> /// 表名 /// </summary> private const string _tablenane = "stockic"; /// <summary> /// 获取库存列表 /// </summary> public list<stockicresult> getstockiclist(stockicparam param) { list<stockicresult> list = new list<stockicresult>(); string sql = "with [temptablefor{0}] as"; sql += " (select *,row_number() over (order by {1}) as rownumber from [{0}] where 1=1 {2})"; sql += " select * from [temptablefor{0}] where rownumber between {3} and {4}"; stringbuilder sqlcondition = new stringbuilder(); list<sqlparameter> sqlparams = new list<sqlparameter>(); //型号 if (!string.isnullorempty(param.model)) { sqlcondition.appendformat(" and model like '%{0}%'", param.model); } //开始时间 if (param.begintime.hasvalue) { sqlcondition.append(" and createtime >= @begintime"); sqlparams.add(new sqlparameter("@begintime", param.begintime.value)); } //结束时间 if (param.endtime.hasvalue) { sqlcondition.append(" and createtime < @endtime"); sqlparams.add(new sqlparameter("@endtime", param.endtime.value.adddays(1))); } //排序 if (string.isnullorwhitespace(param.orderby)) { param.orderby = " createtime desc"; } //分页 param.pageindex = param.pageindex - 1; int64 startnumber = param.pageindex * param.pagesize + 1; int64 endnumber = startnumber + param.pagesize - 1; //拼装sql sql = string.format(sql, _tablenane, param.orderby, sqlcondition, startnumber, endnumber); //执行sql语句 dataset dataset = dbhelper.getreader(sql.tostring(), sqlparams.toarray()); list = trantolist(dataset); return list; }
注意:dbhelper.getreader()方法、trantolist()方法等请自己完善。
一些计算方法
//分页 int64 startnumber = (param.pageindex - 1) * param.pagesize + 1; int64 endnumber = startnumber + param.pagesize - 1; //总页数 = (数据总数 + 分页大小 -1) / 分页大小 totalpage = (totalcount + pagesize - 1) / pagesize;
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#字符串操作技巧总结》、《c#数组操作技巧总结》、《c#中xml文件操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》及《c#面向对象程序设计入门教程》
希望本文所述对大家c#程序设计有所帮助。
上一篇: 男人阳气不足怎么办 多按摩关元穴常晒太阳
下一篇: 秋季清肺可采尝试腹式呼吸