关于我们 广告服务 社区论坛
设为首页 加入收藏

行业新闻
服 务 器
模版下载
建站指南
冲浪宝典
办公软件
网站运营
操作系统
QQ 专题
网页制作
安全防御
视频教程
网络编程
SEO专区
软件下载
图像设计
Cisco
网页特效
Wap 技术
联盟赚钱
网页素材
 首页 | 企业建站 | 网页制作 | 网站运营 | 网络编程 | 图像设计 | 冲浪宝典 | 操作系统 | SEO专区 | 联盟赚钱 | Cisco

欢迎来到e天下网络首页>>网络编程>>ASP>>正文|用ASP与SQL Server2000编程分页显示记录的通用方法

用ASP与SQL Server2000编程分页显示记录的通用方法

[ 来路:21kn.com    时间:2007-7-8 0:51:22    点击: ]

 

  用ASP与SQL Server2000编程分页显示记录的通用方法

  在工作中,因为需要,需要一个网络查询系统,所以进行了网页设计。以前进行网页编程时经常使用PHP语言和MySQL数据库,此次,因为限制,必须用ASP语言和SQL Server2000,所以对此进行了一些研读。发现,SQL Server和ASP配合没有象MySQL那样的

  Select ... limit ...

语句从某条记录开始只取需要的记录的功能,显得比较不方便。

 要查询信息,浏览记录,有时记录量很大,需要分页显示。我作了一个通用的函数,使用起来非常方便。在网页中定义表头,用此函数根据查询条件产生查询结果形成查询内容。

 我在此只截取了我程序中的一部分并作了一些修改,对说明此功能已经足够。主要是下面的

  f_multipage_disp

过程,在需要时调用它即可。我的程序的一个特点,就是模块化。对于所有进行数据库表操作的语句都在一个文件中,比如test_dbf.asp中。这样,查询调试都很方便。

 我对程序没有作多少注解,因为太简单,相信你一看就明白。

 当然,你也可以对此改造,有什么好的方法和建议可给我邮件,我当非常感谢。

test_dbf.asp文件:

<%
 '作者:王朋武
 '日期:2007, 5, 29
 '目的:分布显示网页的通用方法
 '联系:darlingpeng@sina.com; pengwuwang@sohu.com
 '语言:ASP, SQL Server 2000

 set l_conn = Server.CreateObject("ADODB.Connection") '定义连接
 l_conn.Open "FILEDSN=C:\Program Files\Common Files\ODBC\Data Sources\warehouse.dsn;Uid=sa;Pwd=123" '打开连接
 Set l_rs = Server.CreateObject("ADODB.RecordSet") '产生记录集

 function f_multipage_disp(l_url, l_seek, l_value, l_action, l_page, l_count) '多页显示 
  if l_rs.RecordCount <= 0 then Response.End '没有信息

  l_rs.PageSize = g_page_size 'g_page_size为宣言的页大小
  l_pages = (l_rs.RecordCount \ g_page_size)
  if l_rs.RecordCount mod g_page_size <> 0 then l_pages = l_pages + 1 '求页数
  select case l_action
   case "首页" l_page = 1
   case "前页" l_page = l_page - 1
   case "后页" l_page = l_page + 1
   case "末页" l_page = l_pages
  end select
  if l_page < 1 then l_page = 1
  if l_page > l_pages then l_page = l_pages  
  l_rs.AbsolutePage = l_page    
  l_ret = "<tr><td colspan='" + CStr(l_count) + "' align='right'>"
  l_ret = l_ret + "<form method='POST' action='" + l_url + "'>"
  l_ret = l_ret + "第" + CStr(l_page) + "/" + CStr(l_pages) + "页&nbsp;"
  l_ret = l_ret + "<input type='hidden' name='page' value='" + CStr(l_page) + "'>"
  if l_pages > 1 then
   if l_page > 1 then
    l_ret = l_ret + "<input type='submit' name='do' value='首页'>&nbsp;"
    l_ret = l_ret + "<input type='submit' name='do' value='前页'>&nbsp;"
   end if
   if l_page < l_pages then
    l_ret = l_ret + "<input type='submit' name='do' value='后页'>&nbsp;"
    l_ret = l_ret + "<input type='submit' name='do' value='末页'>&nbsp;"    
   end if
  end if
  l_ret = l_ret + "</form>"
  l_ret = l_ret + "</td></tr>"
  f_multipage_disp = l_ret
 end function

 sub f_disp_value(l_seek, l_value, l_action, l_page) '显示信息
  str_where = ""
  select case l_seek
   case "姓名"
    str_where = " where f_name like '%" + l_value + "%'"
   case "学校"
    str_where = " where f_school like '%" + l_value + "%'"
  end select
  l_sql = "select f_name as 姓名,f_gender as 性别,f_school as 学校,f_city as 城市,f_pcode as 邮编,f_email as 邮箱,f_tel as 电话,f_addr as 地址,f_memo as 备注 from t_test" + str_where + " order by f_name,f_gender"
  l_rs.Open l_sql, l_conn, 1, 1  
  l_ret = f_multipage_disp("t_test2.asp", l_seek, l_value, l_action, l_page, 9) '调用函数,注意最后一个参数9
  dim l_s(8)  
  j = 0
  do while not l_rs.eof and j < g_page_size
   j = j + 1
   for i=0 to 8
    l_s(i) = l_rs(i)
    if isnull(l_s(i)) then l_s(i) = "&nbsp;"
   next
   Response.Write("<tr bgcolor='eeeeee' valign='top'><td>" _
   + l_s(0) + "</td><td>" _
   + l_s(1) + "</td><td>" _
   + l_s(2) + "</td><td>" _
   + l_s(3) + "</td><td>" _
   + l_s(4) + "</td><td>" _
   + l_s(5) + "</td><td>" _
   + l_s(6) + "</td><td>" _
   + l_s(7) + "</td><td>" _
   + l_s(8) + "</td></tr>")
   l_rs.MoveNext
  loop
  Response.Write(l_ret)
  l_rs.Close
 end Sub
%>

test.asp文件

<%
 if Request.ServerVariables("REQUEST_METHOD") = "POST" Then
  Session("si_msel") = Request.Form("select_value")
  Session("si_mval") = Request.Form("txt_value")
  l_seek = Session("si_msel")
  l_value = Session("si_mval")
  l_page = Request.Form("page")
  l_action = Request.Form("do")
 end if
%>

<html>
<head>
<title>查询系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/normal.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center" class="cap_text">信息查询表
  <table width="90%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><form name="form1" method="post" action="test.asp">
          查询条件:
          <select name="select_value">
            <option <% if Session("si_msel") = "名称" then Response.Write("selected") %>>名称</option>
            <option <% if Session("si_msel") = "学校" then Response.Write("selected") %>>学校</option>
          </select>
          <input type="text" name="txt_value" value="<% =Session("si_oval") %>">
          <input type="submit" name="Submit" value="查询">
        </form></td>
    </tr>
  </table>
</div>
<table width="90%" border="0" align="center" cellpadding="2">
  <tr bgcolor="#CCCCCC">
 <td width="12%">姓名</td>
 <td width="5%">性别</td>
    <td width="10%">学校</td>
    <td width="15%">城市</td>
    <td width="5%">邮编</td>
    <td width="10%">邮箱</td>
    <td width="8%">电话</td>
    <td width="11%">地址</td>
    <td width="26%">备注</td>   
  </tr>
  <!-- #include file=test_dbf.asp -->
  <%
 call f_disp_value(l_seek, l_value, l_action, l_page)
  %>
</table>
</body>
</html>

::::站长友情提示:多花一分钟学点什么都好::::

 

上一篇:ASP程序实现可以保存参数值的分页功能  下一篇:技巧文章:实用的ASP连接数据库的函数

 ::热点信息::

 

= = 免责声明 = =

① 欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com

::推荐文章::

 

ASP教程:详细学习ASP的内置对象

::图像设计::

 

动态图片搜索家——GIF RUNN
软件搜索利器——FileFerret
实例说明构图要讲规律
Character Builder让你尽展靓
全景图速成者Cool360
三维模型速成工具——Canoma
剪贴专家SmartBoard 32
新世纪的图像处理利器——Ph
更多内容..

 

 

关于我们 广告服务 友情链接 合作伙伴 社区论坛 免责声明

Copyright © 2007   21kn.com Inc. All rights reserved.e天下网络工作室

网站白天客服QQ:26875416 (非24小时)  合作QQ:597004688    粤ICP备06026423号