通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>asp专区>>正文 新版上线![旧版]
注:打开慢时请稍等

asp + sqlserver 分页方法(不用存储过程)

http://www.iyit.net  日期:2006-6-7 11:11:23  来源:  点击:
参加讨论】       我的一个asp + sqlserver的分页程序:这个程序的特点就是指将当前页的纪录掉到页面上来。性能不错,而且不用存储过程,由于代码没有封装,所以很零散,要用到你的程序中,需要先简单读读。然后注意需要自己设置的地方的意思。有些是可以省略的。有些参数传递也是可以省略的。

        代码如下:

''''  塞北的雪  分页利器(sql server)  不用存储过程   -------------------------

'其中注释中有 ###的需要用户设置
'其中注释中有 参数传递 ** 的 说明要通过参数 传递。


'定义变量
dim tOption                  '查询条件
dim tOrder                   '排序字符串     
dim tOrderField              '排序字段        可通过参数获得:order_field
dim tOrderDirection          '排序方向        可通过参数获得:order_direction

dim tPageSize                '页大小
dim tTotalCount              '总记录数        可通过参数获得:t_count
dim tPageCount               '页数
dim tCurPage                 '当前页号        可通过参数获得:page

dim tTableName               '表或者视图名
dim tFieldAlias              '行号的别名
dim tFieldList               '查询的字段列表
dim tPageField               '用于分页的字段

dim r_count                  '查得的记录数


set rs=server.createobject("adodb.recordset")        '记录集对象

'排序处理
tOrderField=Request("order_field")                   '获得排序字段(参数传递 **)
tOrderDirection=Request("order_dir")                 '获得排序方向(参数传递 **)

if(tOrderField="") then tOrderField="item_code"       ' ### 设置默认排序字段
if(tOrderDirection="") then tOrderDirection="asc"     ' ### 设置默认排序方向

tOrder=" order by " & tOrderField & " " & tOrderDirection & " "   '生成排序字符串


'定义参数
tPageSize=find_rs_count        ' ### 设置页大小
tTableName="view_select1"      ' ### 设置与查询的表格或视图
tFieldList=" * "               ' ### 欲查询的字段列表
tPageField="item_code"         ' ### 设置一个主键或唯一索引的字段 ,用于分页计算


'页数处理
tCurPage=Request("page")             '获得当前页(参数传递 **)
tTotalCount=Request("t_count")       '获得总页数(参数传递 **)

if(tCurPage="") then tCurPage=1
if(cint(tCurPage)=0) then tCurPage=1
if(tPageCount="") then tPageCount =1
if(cint(tPageCount)=0) then tPageCount=1

' 构造查询条件,根据具体的程序,肯定不一样。但是最后的条件必须是“ where ??? ”
tOption=" issue_flag='Y'"                      ' ### 设置条件
if f_c<>"" then tOPtion= tOPtion & f_c         ' ### 设置条件

if trim(tOption)="" then
     tOption = " where 1=1 "   '如果没有条件,就自己加一个。
else
     tOption= " where " & tOPtion
end if

   
  
     '构造查询字符串,这个分页程序的核心,此查询串是我们只下载当前页所需的记录
 if(tCurPage>1) then
  conStr="select top " & tPageSize & " " & tFieldList & "  from  " & tTableName &  tOption
  conStr =conStr & " and " & tPageField & " not in(select top " & tPageSize*(tCurPage-1) & " " & tPageField & "  from " & tTableName &  tOption & " " & tOrder & ") " & tOrder
 else
  conStr="select top " & tPageSize & " " & tFieldList & " from " & tTableName & tOption & " " & tOrder
 end if 
 
 
 '执行主查询,获得相应记录集 
 Call ConnDataBase()                     '  ### 建立数据库连接
    rs.cursorlocation=3
    rs.open conStr,conn,3,1                 '执行查询
    r_count= rs.recordcount


   '当还没有查询过总记录数时 并且 总的记录数超过了页大小时 ,查询当前条件下的总的记录数
   if(r_count>=tPageSize or tCurPage>1) and tTotalCount=0 then
      set rr=conn.execute("select count(*) from " & tTableName & " " & tOption)
      tTotalCount=rr(0)
      rr.close()
      set rr=nothing
   end if   
   if(cint(tTotalCount)=0) then tTotalCount=r_count '如果总记录为0,将当前差得的记录集的记录数设置为总记录数,说明当前的总记录数小于页大小
  
   '利用页大小和总记录数 计算页数
   if(cint(tTotalCount)>cint(tPageSize)) then
  tPageCount=cint((cint(tTotalCount) \ cint(tPageSize)))
  if(cint(tTotalCount) mod cint(tPageSize))>0 then
      tPageCount =tPageCount +1
  end if
   end if
 
   tCurPage=cint(tCurPage)
   tPageCount=cint(tPageCount)


'  ---------------------------------------------------------------------

        这就是全部代码,感兴趣的朋友,可以研究一下,或者将他封装起来,加上分页导航等方法。总之,希望此代码能对大家有用。



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:ASP无组件上传进度条解决方案
下一篇:在用户离开页面时提示信息
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
ASP初学者常犯的几个错误 rs.open sql,conn,1,1全接触 [ASP]利用 xmlhttp 分块上传文件
asp,php 和 jsp 比较 之我见 刷一次变一次图的ASP代码 ASP基础
一段在asp中加密与解密对应的函数 ASP自动解压RAR文件 在ASP与ASP.NET之间共享对话状态(2)
在ASP与ASP.NET之间共享对话状态(1) 利用ASP+JMAIL进行邮件群发的新思路 ASP操作Excel技术总结
用ASP实现对ORACLE数据库的操作 IIS6.0下ASP的新增功能 浅谈如何建立三层体系结构的ASP应用程序
asp中利用数组实现数据库记录的批量录入 vbs(asp)的栈类 用ASP打开远端MDB文件的方法
在asp中通过getrows实现数据库记录分页 在asp中通过vbs类实现rsa加密与解密 Asp深度揭密(上)
Asp深度揭密(下) 巧用ASP生成PDF文件 在ASP中使用SQL语句之1:SELECT 语句
最新更新 热点排行 推荐新闻
ASP初学者常犯的几个错误
rs.open sql,conn,1,1全接触
处理较长文章,添加 …… 效果
[ASP]利用 xmlhttp 分块上传文件
asp,php 和 jsp 比较 之我见
ASP初学者常犯的几个错误
rs.open sql,conn,1,1全接触
处理较长文章,添加 …… 效果
[ASP]利用 xmlhttp 分块上传文件
asp,php 和 jsp 比较 之我见
刷一次变一次图的ASP代码
ASP基础
随机生成文件名的函数
一段在asp中加密与解密对应的函数
ASP自动解压RAR文件
用ASP+XMLHTTP编写天气预报程序
ASP如何获取真实IP地址
VS .net 2003调试javascript中两个杂症
datagrid编辑、修改、删除、翻页例子
清空iis log 中自己登录ip的vbs
QQ最新版下载 2006 beta2 体验新感受 
QQ密码本地破解
Office2007简体中文版浮出水面 美图抢
Visual Basic 概述
珊蝴虫QQ探测隐身的招式用法
exeplorer.exe错误的问题的总结、解决
解决暴风影音无法渲染此文件的难题
解决Windows中的explorer.exe出错
一个好汉N个帮 Word实用插件集锦
Authorware7.0基础与实例教程连载 第5
ASP 五大高效提速技巧
ASP中使用SQL语句教程
测试一下喽!
Windows下的虚拟主机设置全功略
危险无处不在 Html标签带来的安全隐患
网络游戏是06年互联网最具发展潜力业务
巧用ACDSee 8.0截取QQ表情每一帧
解除瑞星 诺顿遗留下的杀毒兼容问题
第一款开源AJAX安全扫描工具Sprajax
WinRAR人性化功能揭密
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
Linux操作系统12则经典应用技巧
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息