Coolite之数据源(store)分页,基于Sql2000存储过程(高效分页)
这几天有朋友问起数据分页的问题,再加群(Coolite群1925495)中朋友提起分页。我也想把自己整理的数据分页存储拿出来,供大家指正下。
思路:在读取数据表中的数据时无论读取多少行记录。我们最常用的是读取top N 到 topN+pageSize (通常按ID desc来取)。但分页有正序与倒序之分,具体怎么处理?先将代码粘出来,接下来再做详细说明。
![](/assets/blank.gif)
![](/assets/blank.gif)
1
![](/assets/blank.gif)
![](/assets/blank.gif)
2
![](/assets/blank.gif)
3
![](/assets/blank.gif)
4
![](/assets/blank.gif)
5
![](/assets/blank.gif)
6
![](/assets/blank.gif)
7
![](/assets/blank.gif)
8
![](/assets/blank.gif)
9
![](/assets/blank.gif)
10
![](/assets/blank.gif)
11
![](/assets/blank.gif)
12
![](/assets/blank.gif)
13
![](/assets/blank.gif)
14
![](/assets/blank.gif)
15
![](/assets/blank.gif)
16
![](/assets/blank.gif)
17
![](/assets/blank.gif)
18
![](/assets/blank.gif)
19
![](/assets/blank.gif)
20
![](/assets/blank.gif)
21
![](/assets/blank.gif)
22
![](/assets/blank.gif)
23
![](/assets/blank.gif)
24
![](/assets/blank.gif)
25
![](/assets/blank.gif)
26
![](/assets/blank.gif)
27
![](/assets/blank.gif)
28
![](/assets/blank.gif)
29
![](/assets/blank.gif)
30
![](/assets/blank.gif)
31
![](/assets/blank.gif)
32
![](/assets/blank.gif)
33
![](/assets/blank.gif)
34
![](/assets/blank.gif)
35
![](/assets/blank.gif)
36
![](/assets/blank.gif)
37
![](/assets/blank.gif)
38
![](/assets/blank.gif)
39
![](/assets/blank.gif)
40
![](/assets/blank.gif)
41
![](/assets/blank.gif)
42
![](/assets/blank.gif)
43
![](/assets/blank.gif)
44
![](/assets/blank.gif)
45
![](/assets/blank.gif)
46
![](/assets/blank.gif)
47
![](/assets/blank.gif)
48
![](/assets/blank.gif)
49
![](/assets/blank.gif)
50
![](/assets/blank.gif)
51
![](/assets/blank.gif)
52
![](/assets/blank.gif)
53
![](/assets/blank.gif)
54
![](/assets/blank.gif)
55
![](/assets/blank.gif)
56
![](/assets/blank.gif)
57
![](/assets/blank.gif)
58
![](/assets/blank.gif)
59
![](/assets/blank.gif)
60
![](/assets/blank.gif)
61
![](/assets/blank.gif)
62
![](/assets/blank.gif)
63
![](/assets/blank.gif)
64
![](/assets/blank.gif)
65
![](/assets/blank.gif)
66
![](/assets/blank.gif)
67
![](/assets/blank.gif)
68
![](/assets/blank.gif)
69
![](/assets/blank.gif)
70
![](/assets/blank.gif)
71
![](/assets/blank.gif)
72
![](/assets/blank.gif)
73
![](/assets/blank.gif)
74
![](/assets/blank.gif)
75
![](/assets/blank.gif)
76
![](/assets/blank.gif)
77
![](/assets/blank.gif)
78
![](/assets/blank.gif)
79
![](/assets/blank.gif)
80
![](/assets/blank.gif)
81
![](/assets/blank.gif)
82
![](/assets/blank.gif)
83
![](/assets/blank.gif)
84
![](/assets/blank.gif)
85
![](/assets/blank.gif)
86
![](/assets/blank.gif)
87
![](/assets/blank.gif)
88
![](/assets/blank.gif)
89
![](/assets/blank.gif)
90
![](/assets/blank.gif)
91
![](/assets/blank.gif)
92
![](/assets/blank.gif)
93
![](/assets/blank.gif)
94
![](/assets/blank.gif)
95
![](/assets/blank.gif)
96
![](/assets/blank.gif)
97
![](/assets/blank.gif)
98
![](/assets/blank.gif)
99
![](/assets/blank.gif)
100
![](/assets/blank.gif)
101
![](/assets/blank.gif)
102
![](/assets/blank.gif)
103
![](/assets/blank.gif)
104
![](/assets/blank.gif)
105
![](/assets/blank.gif)
106
![](/assets/blank.gif)
107
![](/assets/blank.gif)
108
![](/assets/blank.gif)
109
![](/assets/blank.gif)
110
![](/assets/blank.gif)
111
![](/assets/blank.gif)
112
![](/assets/blank.gif)
说明下:
1、读取时,我以主键(Orderfld)为准,根据传的页码数(pageSize),当前传入页数(@PageNum )在表@TableName 中先对主键进行第一次筛选,读取这个区间内的相关ID,当然排序有正与倒,它们所取的数据有Max,min之分了,具体么请看代码。
2、根据这个区间ID再读取@TableName 表中相关数据。
3、返回 @TableName 表中记录总数@RecordCount
总体来说:对于数据列过多的表,性能可能有所下降,但又想了一下无论怎么操作,都需要对表中数据进行筛选。我选择先对主键进行第一次筛选,然后再对数据进行读取。——希望高手对我这个筛选存储留下你宝贵的建议!在此先谢谢了
二、接下说下在DAL中的引用
代码如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
1
![](/assets/blank.gif)
![](/assets/blank.gif)
2
![](/assets/blank.gif)
3
![](/assets/blank.gif)
4
![](/assets/blank.gif)
5
![](/assets/blank.gif)
6
![](/assets/blank.gif)
7
![](/assets/blank.gif)
8
![](/assets/blank.gif)
9
![](/assets/blank.gif)
10
![](/assets/blank.gif)
11
![](/assets/blank.gif)
12
![](/assets/blank.gif)
13
![](/assets/blank.gif)
14
![](/assets/blank.gif)
15
![](/assets/blank.gif)
16
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
17
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
18
![](/assets/blank.gif)
19
![](/assets/blank.gif)
20
![](/assets/blank.gif)
21
![](/assets/blank.gif)
22
![](/assets/blank.gif)
23
![](/assets/blank.gif)
24
![](/assets/blank.gif)
25
![](/assets/blank.gif)
26
![](/assets/blank.gif)
27
![](/assets/blank.gif)
28
![](/assets/blank.gif)
29
![](/assets/blank.gif)
30
![](/assets/blank.gif)
31
![](/assets/blank.gif)
在这里我把分页、读取单个数据返回实体类。。。。都放在sqlTable这个类中,在DAL中调用起来就更加方便了
如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
1
![](/assets/blank.gif)
![](/assets/blank.gif)
2
![](/assets/blank.gif)
3
![](/assets/blank.gif)
4
![](/assets/blank.gif)
5
![](/assets/blank.gif)
6
![](/assets/blank.gif)
7
![](/assets/blank.gif)
8
![](/assets/blank.gif)
9
![](/assets/blank.gif)
10
![](/assets/blank.gif)
11
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
12
![](/assets/blank.gif)
13
![](/assets/blank.gif)
基于Sqlhelper基础上进行数据访问操作。
第三、在Coolite中实际中应用。
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #region 0 数据源显示
2 protected void Store1_RefershData(object sender, StoreRefreshDataEventArgs e)
3 {
4 int Count = 0;
5 Hidden1.Text = e.Limit.ToString();
6 CheckLoad(ref Count, e.Start, e.Limit, int.Parse(groupID));
7 this.Store1.DataBind();
8 e.TotalCount = Count;
9 }
10 private void CheckLoad(ref int Count, int start, int limit, int groupID)
11 {
12 string uName = txt_user.Text != "" ? " and addUName like '%" + txt_user.Text + "%' " : "";
13 string title = txt_title.Text != "" ? " and title like '%" + txt_title.Text + "%' " : "";
14 string mark = ta_Mark.Text != "" ? " and content like '%" + ta_Mark.Text + "%' " : "";
15
16 ds = uD.Page_NumOut(limit, start, uName+title+mark+" and pass=1 and classID= " +groupID+"", 0, out Count);
17 if (ds != null && ds.Tables[0].Rows.Count > 0)
18 {
19 this.Store1.DataSource = ds;
20 }
21 else
22 {
23 Count = 0;
24 this.Store1.DataSource = "";
25 }
26 }
27 #endregion
在实际应用中就非常方便了。比如,我在读取news表中的数据,而又要在别的页面中读取pro表数据时,我只需改变DAL中 指定到pro表,前台面只需要改变下store的相关数据字段就可以。很是方便。
转载于:https://www.cnblogs.com/qyj0/archive/2009/11/11/1600959.html
Coolite之数据源(store)分页,基于Sql2000存储过程(高效分页)相关推荐
- 基于jquery的php分页,基于jQuery封装的分页组件
前言: 由于项目需要实现分页效果,上jQuery插件库找了下,但是木有找到自己想要的效果,于是自己封装了个分页组件. 思路: 主要是初始化时基于原型建立的分页模板然后绑定动态事件并实现刷新DOM的分页 ...
- oracle如何高效分页,oracle学习之高效分页存储过程实例
oracle学习之高效分页存储过程实例 时间:2017-07-11 来源: create or replace package p_page is -- Author : PHARAOHS -- Cr ...
- oracle分页性能不同,oracle高效分页
什么是分页查询 对于基于Web的应用而言,对查询的结果集进行分页是一个比较常见的需求.假设浏览器界面每页可以显示10条记录,最初界面显示头10条记录给用户,当终端用户点击"下一页" ...
- oracle分页处理实例,Oracle高效分页存储过程实例
create or replace package p_page is -- Author : PHARAOHS -- Created : 2006-4-30 14:14:14 -- Purpose ...
- oracle分页查询sql语句通用,oracle分页查询sql语句,oracle分页查询sql语句详解
oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句 Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点 ...
- DataGrid基于Access的快速分页法
DataGrid基于Access的快速分页法 撰文/ 黎波 DataGrid是一个功能非常强大的ASP.NET Web服务器端控件,它除了能够方便地按各种方式格式化显示表格中的数据,还可以对表格中的数 ...
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
关键字:DataGrid.存储过程.分页 出自: http://blog.csdn.net/yzx110/archive/2004/08/18/78525.aspx 摘要:在最进的一个项目中因为一个管 ...
- 基于hibernate实现的分页技术
先说明一下基于hibernate实现分页的原理,假如从数据库取出100条数据,我们要让每页显示10条,假如从30开始,只需要设置起始位置和最大的返回结果即可 先上代码:注意传进来的参数有 Page这类 ...
- php面向对象分页,PHP基于面向对象封装的分页类示例
本文实例讲述了php基于面向对象封装的分页类.分享给大家供大家参考,具体如下: class page { protected $num;//每页显示条数 protected $total;//总记录数 ...
- mysql sqlite 分页查询_php基于SQLite实现的分页功能示例
本文实例讲述了php基于SQLite实现的分页功能.分享给大家供大家参考,具体如下: 这里操作数据库文件使用的是前面文章<PHP基于PDO实现的SQLite操作类[包含增删改查及事务等操作]&g ...
最新文章
- python pip换源方法
- 解决Jetty Maven Plugin:Please initialize the log4j system properly(转)
- netsh winsock reset
- Python 输出的空格问题
- Scala集合实现WordCount单词统计代码
- (C语言版)栈和队列(二)——实现顺序存储栈和顺序存储队列的相关操作
- 学了阿里中台,却依然做不好系统? 聊聊阿里的项目管理
- window服务器上搭建git服务,window server git!!!
- CSS清除浮动的五种常用方法
- Android 应用开发(37)---RelativeLayout(相对布局)
- yolo v3 pytorch版本(转载)
- C语言小游戏(一)----猜数游戏
- P2P终结者的工作原理
- Unreal 凹多边形三角化
- html5 fa图标库,轻松学会在项目中使用fontawesome字体图标
- 智能泊车技术及现状详解
- linux b类地址设24位掩码,LINUX中的网络配置
- 今天分享固态硬盘安装以及Win7系统安装流程
- 清算中的二清是什么东东
- 基础工具组件starter-idempotent-redission设计与实现
热门文章
- java udp多线程服务器_UDP服务端多线程-----
- 学生管理系统--golang--简单版本---开发框架
- 核磁谱图分析步骤_微谱技术:想要涂料开发,少不了仪器分析……
- deeplearning.ai——构建深度神经网络做图像处理
- 算法 -- 四种方法获取的最长“回文串”,并对时间复杂进行分析对比PHP
- linux命令(47):Linux下对文件进行按行排序,去除重复行
- TraceBack模块
- 百度地图API自定义地图
- Linux下如何查看高CPU占用率线程 专题
- 蠕虫Sexy View短信攻击诺基亚3250等手机