C#的DataTable分页

方法一:

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;
}

方法二:

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;
}

 返回分页后的总页数:

 public int getTotalPage(int totalCount, int pageSize)
{
            var totalPage = (totalCount / pageSize) + (totalCount % pageSize > 0 ? 1 : 0);
            return totalPage;
}

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中使用 MySQL 分页可以采用 LIMIT 关键字实现,具体步骤如下: 1. 构建 MySQL 查询语句,添加 LIMIT 关键字,指定查询结果的起始行和返回的行数。 ```sql SELECT * FROM table_name LIMIT start_index, page_size; ``` 其中,start_index 表示起始行的索引,page_size 表示每页返回的行数。 2. 在 C# 中执行 SQL 查询语句,并获取查询结果。 ```csharp MySqlConnection connection = new MySqlConnection(connectionStr); string sql = "SELECT * FROM table_name LIMIT @start_index, @page_size;"; MySqlCommand command = new MySqlCommand(sql, connection); command.Parameters.AddWithValue("@start_index", start_index); command.Parameters.AddWithValue("@page_size", page_size); MySqlDataAdapter adapter = new MySqlDataAdapter(command); DataTable dataTable = new DataTable(); adapter.Fill(dataTable); ``` 其中,connectionStr 表示连接 MySQL 数据库的字符串,start_index 和 page_size 分别为起始行的索引和每页返回的行数。 3. 根据获取到的查询结果,进行分页显示。 ```csharp // 显示分页数据 foreach (DataRow row in dataTable.Rows) { // 显示每行数据 } // 显示分页导航 int totalRows = ...; // 获取总行数 int totalPages = (int)Math.Ceiling((double)totalRows / page_size); // 计算总页数 int currentPage = (start_index / page_size) + 1; // 计算当前页数 // 显示分页导航 ``` 其中,totalRows 表示总行数,totalPages 表示总页数,currentPage 表示当前页数,page_size 表示每页返回的行数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值