C#之数据分页

方法一:临时datatable

创建临时表,临时变量

1 DataTable dt = null;             //临时表
2 private int _pageCount = 0;      //总分页数
3 private int _currentPage = 1;    //当前页数
4 private int _itemsCount = 20;    //每页的数量

加载数据到临时表,该方法测试放到了窗体的Load事件中(‘###’表示关键词)

 1     string strConn = @"Data Source=LONG-PC\;Initial Catalog=###;User ID=long;password=###";
 2     SqlConnection conn = new SqlConnection(strConn);
 3     conn.Open();
 4
 5     SqlCommand cmd = new SqlCommand();
 6     cmd.Connection = conn;
 7     cmd.CommandText = "select * from ###";
 8     cmd.CommandType = CommandType.Text;
 9     cmd.ExecuteNonQuery();
10
11     SqlDataAdapter adap = new SqlDataAdapter(cmd);
12     dt = new DataTable();
13     adap.Fill(dt);
14
15     int rowNumber = dt.Rows.Count;
16     _pageCount = rowNumber / _itemsCount;
17     if (rowNumber % _itemsCount != 0)
18     {
19         _pageCount++;
20     }
21     LoadContents(dt, 1);

上一页:

1     _currentPage--;
2     if (_currentPage <= 0)
3         _currentPage = 1;
4     LoadContents(dt, _currentPage);

下一页:

1     _currentPage++;
2     if (_currentPage >= _pageCount)
3         _currentPage = _pageCount;
4     LoadContents(dt, _currentPage);

加载的方法:

 1    private void LoadContents(DataTable dt, int currentPage)
 2    {
 3        DataTable temp = dt.Clone();
 4        for (int i = 0; i < _itemsCount; i++)
 5        {
 6            int rowNumber=(currentPage-1)*_itemsCount+i;
 7            temp.ImportRow(dt.Rows[rowNumber]);
 8        }
 9
10        dataGridView1.DataSource = temp;
11    }
时间: 2024-11-15 00:31:01

C#之数据分页的相关文章

ThinkPHP数据分页Page.class.php

获取分页类 ThinkPHP提供了数据分页的扩展类库Page,可以在http://www.thinkphp.cn/extend/241.html下载,或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含分页扩展类了.把解压后的Page.class.php放入ThinkPHP/Extend/Library/ORG/Util/(如果没有请手动创建)目录下面. 当然,扩展类库的位置其实比较随意,你也可以放入项目的类库目录下面,区别只是在于你

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

salesforce 零基础开发入门学习(八)数据分页简单制作

本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于以下: ApexPages.StandardController:当为一个标准Controller定义扩展的时候使用此类.StandardController对象为Salesforce提供的预构建VF的控制器对象引用; ApexPages.Action:使用Action类和方法用于VF自定义控制器和

SqlSever大数据分页

在sql sever中大数据的分页一直是难以处理的一块,利用id自增列分页也存在不足之处.从一个相对全面的分页看,sql sever2005中新增的row_number()函数解决了这个问题.还是从一个实际项目开始介绍吧.中国铁建股份公司的项目表中数据很大,开发之初用的是GridView控件自带的分页,在运行一年以后,点击下一页终于是难以等待了,系统需要优化.对于分页的改进是业务的需要.于是,我采用了Row_number()函数分页.也算一解了燃眉之急. 说明:该篇文章只是一个案例的说明,更详细

大数据分页实现与性能优化

摘要:Web 应用程序中经常使用数据分页技术,该技术是提高海量数据访问性能的主要手段.实现web数据分页有多种方案,本文通过实际项目的测试,对多种数据分页方案深入分析和比较,找到了一种更优的数据分页方案Row_number()二分法.它依靠二分思想,将整个待查询记录分为2部分,使扫描的记录量减少一半,进而还通过对数据表及查询条件进行优化,实现了存储过程的优化.根据Row_number()函数的特性,该方案不依赖于主键或者数字字段,大大提高了它在实际项目中的应用,使大数据的分页效率得到了更显著的提

Sql Server 数据分页

1.引言 在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了,也不能一次性显示给客户端,所以要把数据进行分批查询出来,每页显示一定量的数据,这就是数据要分页. 2.常用的数据分页方法 我们经常会碰到要取n到m条记录,就是有分页思想,下面罗列一下一般的方法. 我本地的一张表 tbl_FlightsDetail,有300多W记录,主键 FlightsDetailID(Guid),要求按照FlightsDetailID排序 取 3000001 到3000010 之间的10条记录,也是

大数据分页解决方案

1 编写目的 解决系统需要检索大数据列表时的性能问题,而提出的分页方案 2 术语.定义和缩略语 3 大数据量检索的性能问题分析 大数据量检索的性能存在问题,问题主要包括 3.1 客户端在IE或者cs端数据量过大会导致IE变慢,甚至死锁 现象: IE浏览器崩溃 浏览器白板,停止响应 3.2 客户端--web服务器之间的数据传输量大会导致客户端速度变慢,效率降低 现象: IE浏览器长期在等待时白板 IE 浏览器操作慢 3.3 中间层构造大数据列表会导致中间层性能降低 现象: 并发访问多时,应用服务器

转Oracle、MySql、SQLServer 数据分页查询

最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: /* * sql:可以是单表的查询语句,也可以是多表的联合查询语句 * firstIndex:其实的索引 * pageSize:每页显示的记录数 */ select o.* from (sql) o limit firstIndex,pageSize

一个高效的数据分页的存储过程 可以轻松应付百万数据

一个高效的数据分页的存储过程 可以轻松应付百万数据 CREATE PROCEDURE pageTest --用于翻页的测试--需要把排序字段放在第一列 (@FirstID nvarchar(20)=null, --当前页面里的第一条记录的排序字段的值@LastID nvarchar(20)=null, --当前页面里的最后一条记录的排序字段的值@isNext bit=null, --true 1 :下一页:false 0:上一页@allCount int output, --返回总记录数@pag

SQL SERVER大数据分页

select * from (select rownum r, a.* from (select * from  table_name order by ndatetime desc ) a where rownum <= currentPage * pageSize ) where r > (currentPage - 1) * pageSizeSQL SERVER大数据分页,布布扣,bubuko.com