参照了多位高手的文章,主要觉得最重要是分页最好用存储过程来处理,返回当前页数据的DataSet。 存储过程如下: CREATE PROCEDURE dbo.sp_info_page2 ( @pagesize int, @currpage int ) as begin DECLARE @sqlText AS nvarchar(4000) if (@currpage=1) set @sqlText=''''select top ''''+CAST((@pagesize) as varchar(30))+'''' * FROM TBL_INFO ORDER BY INFOID DESC'''' ELSE set @sqlText=''''select top ''''+CAST((@pagesize) as varchar(30))+'''' * FROM tbl_info WHERE (infoid<(SELECT MIN(infoid) FROM (SELECT TOP ''''+CAST((@pagesize*(@currpage-1)) as varchar(30))+'''' infoid FROM tbl_info ORDER BY infoid desc) AS T)) ORDER BY infoid desc''''