C#的DataTable分页

方法一:

cs 复制代码
public static DataTable DtPage(DataTable dt, int pageIndex, int pageSize)
{
            DataTable pagedt = dt.Clone();
            var query = dt.AsEnumerable().Skip(pageIndex).Take(pageSize);
            foreach (DataRow item in query)
            {
                pagedt.Rows.Add(item.ItemArray);
 
            }

            return pagedt;
}

方法二:

cs 复制代码
public static DataTable DtPage(DataTable dt, int pageIndex, int pageSize)
{
            if (pageIndex== 0) { return dt; }

            DataTable newdt = dt.Copy();
            newdt.Clear();

            int rowbegin = (pageIndex- 1) * pageSize;
            int rowend = pageIndex * pageSize;

            if (rowbegin >= dt.Rows.Count) { return newdt; }

            if (rowend > dt.Rows.Count) { rowend = dt.Rows.Count; }

            for (int i = rowbegin; i <= rowend - 1; i++)
            {
                DataRow newdr = newdt.NewRow();
                DataRow dr = dt.Rows[i];
                foreach (DataColumn column in dt.Columns)
                {
                    newdr[column.ColumnName] = dr[column.ColumnName];
                }
                newdt.Rows.Add(newdr);
            }

            return newdt;
}

返回分页后的总页数:

cs 复制代码
 public int getTotalPage(int totalCount, int pageSize)
{
            var totalPage = (totalCount / pageSize) + (totalCount % pageSize > 0 ? 1 : 0);
            return totalPage;
}
相关推荐
KaneLogger13 分钟前
视频转文字,别再反复拖进度条了
前端·javascript·人工智能
老虎062718 分钟前
数据结构(Java)--位运算
java·开发语言·数据结构
yanjiaweiya19 分钟前
云原生-集群管理续
java·开发语言·云原生
写不出来就跑路25 分钟前
暑期实习感悟与经验分享:从校园到职场的成长之路
java·开发语言·经验分享·spring boot
前端风云志25 分钟前
JavaScript中如何遍历对象?
javascript
泰勒疯狂展开29 分钟前
Java研学-MongoDB(二)
java·mongodb
程序员张34 小时前
Maven编译和打包插件
java·spring boot·maven
19H5 小时前
Flink-Source算子状态恢复分析
c#·linq
ybq195133454315 小时前
Redis-主从复制-分布式系统
java·数据库·redis
weixin_472339466 小时前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel