Coolite之数据源(store)分页,基于Sql2000存储过程(高效分页)

这几天有朋友问起数据分页的问题,再加群(Coolite群1925495)中朋友提起分页。我也想把自己整理的数据分页存储拿出来,供大家指正下。

思路:在读取数据表中的数据时无论读取多少行记录。我们最常用的是读取top N 到 topN+pageSize (通常按ID desc来取)。但分页有正序与倒序之分,具体怎么处理?先将代码粘出来,接下来再做详细说明。

Code

说明下:

1、读取时,我以主键(Orderfld)为准,根据传的页码数(pageSize),当前传入页数(@PageNum )在表@TableName 中先对主键进行第一次筛选,读取这个区间内的相关ID,当然排序有正与倒,它们所取的数据有Max,min之分了,具体么请看代码。

2、根据这个区间ID再读取@TableName 表中相关数据。

3、返回 @TableName 表中记录总数@RecordCount

总体来说:对于数据列过多的表,性能可能有所下降,但又想了一下无论怎么操作,都需要对表中数据进行筛选。我选择先对主键进行第一次筛选,然后再对数据进行读取。——希望高手对我这个筛选存储留下你宝贵的建议!在此先谢谢了

二、接下说下在DAL中的引用

代码如下:

Code

在这里我把分页、读取单个数据返回实体类。。。。都放在sqlTable这个类中,在DAL中调用起来就更加方便了

如下:

Code

 

基于Sqlhelper基础上进行数据访问操作。

第三、在Coolite中实际中应用。

 

Code

在实际应用中就非常方便了。比如,我在读取news表中的数据,而又要在别的页面中读取pro表数据时,我只需改变DAL中 指定到pro表,前台面只需要改变下store的相关数据字段就可以。很是方便。

你可能感兴趣的:(sql2000)