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;
}
相关推荐
凤山老林2 分钟前
04-Java JDK, JRE和JVM
java·开发语言·jvm
灵感__idea5 小时前
Hello 算法:贪心的世界
前端·javascript·算法
camellias_6 小时前
【无标题】
java·tomcat
咸鱼2.07 小时前
【java入门到放弃】需要背诵
java·开发语言
椰猫子7 小时前
Java:异常(exception)
java·开发语言
win x8 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
星晨雪海8 小时前
基于 @Resource 的支付 Service 多实现类完整示例
java·开发语言
阿维的博客日记8 小时前
什么是逃逸分析
java·juc
killerbasd8 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
Ricky_Theseus8 小时前
C++右值引用
java·开发语言·c++