C#構(gòu)建分頁(yè)應(yīng)用的方法分析
本文實(shí)例講述了C#構(gòu)建分頁(yè)應(yīng)用的方法。分享給大家供大家參考,具體如下:
1、SQL語(yǔ)句
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、后臺(tái)方法
/// <summary> /// 表名 /// </summary> private const string _tableNane = "StockIC"; /// <summary> /// 獲取庫(kù)存列表 /// </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>(); //型號(hào) if (!String.IsNullOrEmpty(param.Model)) { sqlCondition.AppendFormat(" AND Model LIKE '%{0}%'", param.Model); } //開(kāi)始時(shí)間 if (param.BeginTime.HasValue) { sqlCondition.Append(" AND CreateTime >= @BeginTime"); sqlParams.Add(new SqlParameter("@BeginTime", param.BeginTime.Value)); } //結(jié)束時(shí)間 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"; } //分頁(yè) 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); //執(zhí)行SQL語(yǔ)句 DataSet dataSet = DBHelper.GetReader(sql.ToString(), sqlParams.ToArray()); list = TranToList(dataSet); return list; }
注意:DBHelper.GetReader()方法、TranToList()方法等請(qǐng)自己完善。
一些計(jì)算方法
//分頁(yè) Int64 startNumber = (param.PageIndex - 1) * param.PageSize + 1; Int64 endNumber = startNumber + param.PageSize - 1; //總頁(yè)數(shù) = (數(shù)據(jù)總數(shù) + 分頁(yè)大小 -1) / 分頁(yè)大小 TotalPage = (TotalCount + PageSize - 1) / PageSize;
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《C#字符串操作技巧總結(jié)》、《C#數(shù)組操作技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見(jiàn)控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
- C# DataTable分頁(yè)處理實(shí)例代碼
- 適用于WebForm Mvc的Pager分頁(yè)組件C#實(shí)現(xiàn)
- C#基于數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的AJAX分頁(yè)實(shí)例
- c#分頁(yè)讀取GB文本文件實(shí)例
- c#分頁(yè)顯示服務(wù)器上指定目錄下的所有圖片示例
- C#拼接SQL語(yǔ)句 用ROW_NUMBER實(shí)現(xiàn)的高效分頁(yè)排序
- 基于jquery的分頁(yè)控件(C#)
- C#中常用的分頁(yè)存儲(chǔ)過(guò)程小結(jié)
- C#實(shí)現(xiàn)分頁(yè)組件的方法
相關(guān)文章
C#實(shí)現(xiàn)銷(xiāo)售管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)銷(xiāo)售管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Unity的IPostprocessBuild實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的IPostprocessBuild實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05C#模擬MSN窗體抖動(dòng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了C#模擬MSN窗體抖動(dòng)的實(shí)現(xiàn)代碼,非常實(shí)用的一個(gè)功能,需要的朋友可以參考下2014-08-08