繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 用ASP与SQL Server2000编程分页显示记录的通用方法

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

2005-12-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  用ASP与SQL Server2000编程分页显示记录的通用方法   在工作中,因为需要,需要一个网络查询系统,所以进行了网页设计。以前进行网页编程时经常使用PHP语言和MySQL数据库,此次,因为限制,必须用ASP语言和...

  用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 = ""

l_ret = l_ret + "

"

l_ret = l_ret + "第" + CStr(l_page) + "/" + CStr(l_pages) + "页 "

l_ret = l_ret + ""

if l_pages > 1 then

if l_page > 1 then

l_ret = l_ret + " "

l_ret = l_ret + " "

end if

if l_page < l_pages then

l_ret = l_ret + " "

l_ret = l_ret + " "

end if

end if

l_ret = l_ret + "

"

l_ret = l_ret + ""

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) = " "

next

Response.Write("" _

+ l_s(0) + "" _

+ l_s(1) + "" _

+ l_s(2) + "" _

+ l_s(3) + "" _

+ l_s(4) + "" _

+ l_s(5) + "" _

+ l_s(6) + "" _

+ l_s(7) + "" _

+ l_s(8) + "")

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

%>

查询系统

信息查询表

查询条件:

">

<%

call f_disp_value(l_seek, l_value, l_action, l_page)

%>

姓名 性别 学校 城市 邮编 邮箱 电话 地址 备注

责任编辑:admin
相关文章