用DataReader分页与几种传统的分页方法的比较2011-07-31肖波对于数据库的分页,目前比较传统的方法是采用分页存储过程,其实用 DataReader 也可以实现分页 ,不需要写存储过程,实现效率上也比几种比较流行的分页方法要略快。在开始这个方法之前,让我们先创建一个简单的测试环境:use Test GO
if exists (select * from sysobjects where id = object_id("R_Student") and type = "u") drop table R_Student GO create table R_Student ( Id nvarchar(64) Primary Key, Class nvarchar(64) NOT NULL, Age tinyint NOT NULL, Sex tinyint NOT NULL )
GO Declare @i int set @i = 0; while (@i < 1000000) begin insert R_Student values("Name" + Str(@i),"Class" + Str(@i), @i % 100, @i % 2) set @i = @i + 1 end通过上述语句创建一个简单的数据表,并插入100万条记录DataReader 分页的方法:说出来很简单,见下面程序 public DataSet RangeQuery(string queryString, long first, long last) { try { OpenDataReader(queryString);
if (first < 0) { first = 0; }
for (long i = 0; i < first; i++) { if (!_DataReader.Read()) { return _SchemaDataSet; } }
if (last < 0) { last = 0x7FFFFFFFFFFFFFFF; }
for (long i = first; i <= last; i++) { DataRow row = NextRow();