| 论坛登陆 注册 | 教程 笑话 影视 投稿 |
![]() |
|
||||||||||||||||||||||||||||||||||||||||
ASP.NET调用oracle实现快速分页 |
|
| www.xker.com 作者:PPLUNCLE 来源:csdn 加入日期:2006-3-14 10:45:17 | |
《使用 ADO.NET 访问 Oracle 9i 存储过程》见下面的介绍(如果对这个不怎么懂的,还是先看看下面文章)http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx 包定义: create or replace package MaterialManage is TYPE T_CURSOR IS REF CURSOR; Procedure Per_QuickPage ( TbName in varchar2, --表名 FieldStr in varchar2, --字段集 RowFilter in varchar2, --过滤条件 SortStr in varchar2, --排序集 RownumFieldStr in varchar2, --分页条件 TotalCount out number, --总记录数 Cur_ReturnCur out T_CURSOR --返回的游标 ); end MaterialManage; 包主体: create or replace package body MaterialManage is Procedure Per_QuickPage ( TbName in varchar2, --表 名 FieldStr in varchar2, --字段集 RowFilter in varchar2, --过滤条件 SortStr in varchar2, --排序集 MinRowNum in number, --分页小值 MaxRowNum in number, --分页大值 TotalCount out number, --总记录数 Cur_ReturnCur out T_CURSOR ) is v_SourceTb1 varchar2(3000); --动态表名1 v_SourceTb2 varchar2(3000); --动态表名2 v_SourceTb3 varchar2(3000); --动态表名3 v_SourceTb4 varchar2(3000); --动态表名4 v_TotalCount varchar2(50); --总记录数 v_sql varchar2(3000); --动态sql begin v_SourceTb1 := '(select ' FieldStr ' from ' TbName ') SourceTb1'; v_SourceTb2 := '(select * from ' v_SourceTb1 ' where ' RowFilter ' ' SortStr ') SourceTb2'; v_SourceTb3 := '(select rownum as Rowindex,SourceTb2.* from ' v_SourceTb2 ' where rownum<=' MaxRowNum ') SourceTb3'; v_SourceTb4 := '(select * from ' v_SourceTb1 ' where ' RowFilter ') SourceTb4'; v_sql := 'select count(*) as TotalCount from ' v_SourceTb4; execute immediate v_sql into v_TotalCount; TotalCount := v_TotalCount; v_sql := 'select * from ' v_SourceTb3 ' where RowIndex >=' MinRowNum; open Cur_ReturnCur for v_sql; end Per_QuickPage; END MaterialManage; 由于oracle有个rownum特性,所以分页的时候就是利用rownum来实现。如果大家还有什么更好的办法记得告诉我一声,多谢了,因为我测试了上面的分页方法效率并不是很高。 存储过程返回了两个参数:TotalCount :当前条件下的总记录数 Cur_ReturnCur :游标类型,就是所要读取的记录的集合 下面是ASP.NET中调用的代码: /// /// 调用存储过程实现快速分页 /// /// 表名称 /// 字段名称 /// 过滤条件 /// 排序字段 本新闻共2页,当前在第1页 1 2 编辑:xker.com上一篇:ASP.NET中实现大结果集分页研讨 下一篇:没有了 |
||
| 【关闭窗口】【技术交流】【收藏此页】 |
|
| 评论 | |
设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
|
| Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446 | |
|
|
| 本页浏览次数: |