C#针对DataTable进行分页方法

以下的分页方法是针对数据量不是非常大的数据进行的,是在内存中进行的分页操作。

/// <summary>

///
DataTable分页

///
</summary>

/// <param
name="dt">DataTable</param>

/// <param
name="PageIndex">页索引,注意:从1开始</param>

/// <param
name="PageSize">每页大小</param>

///
<returns>分好页的DataTable数据</returns>             
第1页        每页10条

public static DataTable
GetPagedTable(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;

}

///
<summary>

///
返回分页的页数

///
</summary>

///
<param name="count">总条数</param>

///
<param name="pageye">每页显示多少条</param>

///
<returns>如果 结尾为0:则返回1</returns>

public static int PageCount(int count,
int pageye)

{

    int page = 0;

    int sesepage = pageye;

    if (count % sesepage == 0) { page = count / sesepage;
}

    else { page = (count / sesepage) + 1; }

    if (page == 0) { page += 1; }

    return page;

}

时间: 2024-10-29 19:08:17

C#针对DataTable进行分页方法的相关文章

MongoDB分页处理方案(适用于一般数据库的分页方法)

MongoDB分页处理方案(适用于一般数据库的分页方法) (2012-11-06 17:59:55) 转载▼ 标签: mongodb 分页 数据库 跳转 分类: MongoDB 转载请注明出处:http://blog.sina.com.cn/s/blog_56545fd30101442b.html MongoDB的分页性能是广大使用者所诟病的大问题之一,在大数据量环境下,如果一次跳转的页数过多,如10W多页,可能用户要等上几十秒(瞎掰的数据),有兴趣的可以去看一下这篇文章Paging & Ran

SqlServer分页方法

/// <summary> /// 使用虚拟表进行分页查询,不适用明确知道列名的查询 /// </summary> /// <param name="sql">sql 如"select * from name where 1=1"</param> /// <param name="pageIndex">页码 如"1"</param> /// <par

SqlServer 常用分页方法总结

SqlServer 常用分页方法总结 下面示例总结了,SqlServer数据库 常用分页方法,仅供学习参考 A. 使用 RowNumber 和 Between And 组合分页: /********** 使用 RowNumber 和 Between And 组合分页 **********/ CREATE PROC proc_FuzzySearchAndPaging @pageIndex int, --页索引 @pageSize int, --页大小 @SearchKey Nvarchar(10)

C# 分页方法

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web; namespace System.Web.Mvc //注意修改为与HtmlHelper相同的命名空间{ /// <summary> /// 静态 分页方法 /// </summary> public static class MyHtmlHelper { //HtmlHelper的扩展

mybatis常用经典分页方法

来自棱镜学院-在线IT教育www.prismcollege.com 分页方法一: 可以查看如下代码,新建一个数据库分页基础类 package com.ssm.utils.pagination.pagebounds; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spr

C# CreateDataAdapter 创建 DbDataAdapter,以及用DataTable的Load方法获取数据

ADO.NET中 有了DbConnection,就可用DbConnection的CreateCommand 创建DbCommand,BeginTransaction创建DbTransaction 可以十分方便的实现工厂模式,操作不同的数据库. 但是唯独DbDataAdapter这个重要的对象无法通过DbConnection或DbCommand来创建,也无法实例化,必须使用SqlDataReader这种明确的类来创建实例,导致 获取数据 的方法不能在基类实现 以下是两个解决办法: 1.只有我们自己

C# Datatable导出Excel方法

C# 导出Excel方法  先引用下System.IO;System.data; 具体函数如下: 1 public static bool ExportCSV(DataTable dt, string fileNmae) 2 { 3 bool Msg = false; 4 string con = ""; 5 foreach (DataColumn dc in dt.Columns) 6 { 7 con += dc.ColumnName + ","; 8 } 9 c

.net分页方法

//记录分页的总条数 DX.Model.Container.PagerDataContainer Container = new DX.Model.Container.PagerDataContainer(); int ActualPageSize = PageSize; #region 总页数 int total = 0; DataSet dsTotal = new DataSet(); StringBuilder sbTotal = new StringBuilder(); if (User

C# DataTable的Select()方法不支持 != 判断

异常描述: 用户代码未处理 System.Data.SyntaxErrorExceptionHResult=-2146232032Message=无法解释位置 23 的标记“!”.Source=System.DataStackTrace:在 System.Data.ExpressionParser.Scan()在 System.Data.ExpressionParser.Parse()在 System.Data.DataExpression..ctor(DataTable table, Stri