通过C#查询结果进行分页就是以结果集的子集处理查询结果的过程,这样,每次返回给用户的只是当前页面的数据大小。
DataAdapter对象通过重载Fill方法提供了返回当前页面数据的功能。然而,这种方法对大数据量的C#查询结果并不是***的选择,这是因为:当DataAdapter用请求的结果填充DataTable或者DataSet时,数据库返回的资源仍是全部的查询结果,只是在返回时附加了额外的限定条件才返回了少量的记录集的。
要使用Fill方法返回当前一页的记录,需要指定开始记录startRecord,和当前页的***记录数maxRecords。
下面的例子用来记录C#查询结果:
- usingSystem;
- usingSystem.Data;
- usingSystem.Data.SqlClient;
- usingSystem.Drawing;
- usingSystem.Windows.Forms;
- publicclassPagingSample:Form
- {
- //Form控件.
- ButtonprevBtn=newButton();
- ButtonnextBtn=newButton();
- staticDataGridmyGrid=newDataGrid();
- staticLabelpageLbl=newLabel();
- //分页变量
- staticintpageSize=10;//要显示的页数
- staticinttotalPages=0;//总页数
- staticintcurrentPage=0;//当前页
- staticstringfirstVisibleCustomer="";
- //当前页的***条记录,用来进行移动“前一页”的定位。
- staticstringlastVisibleCustomer="";
- //当前页的***条记录,用来进行移动“下一页”的定位。
- //DataSet用来绑定到DataGrid.
- staticDataTablecustTable;
- //初始化连接和DataAdapter.
- staticSqlConnectionnwindConn=newSqlConnection
("DataSource=.;IntegratedSecurity=SSPI;InitialCatalog=northwind");- staticSqlDataAdaptercustDA=newSqlDataAdapter("",nwindConn);
- staticSqlCommandselCmd=custDA.SelectCommand;
【编辑推荐】