ASP用存储过程实现数据分页
类别: ASP教程
一、创建表 tiku_koushi
if exists (select * from dbo.sysobjects where id =
object_id(N\'[dbo].[tiku_koushi]\') and OBJECTPROPERTY
(id, N\'IsUserTable\') = 1)
drop table [dbo].[tiku_koushi]
GO
CREATE TABLE [dbo].[tiku_koushi] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[title] [varchar] (250) COLLATE
Chinese_PRC_CI_AS NULL ,
[list2_id] [char] (10) COLLATE
Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
二、存储过程 sp_c
CREATE proc sp_c
@tablename varchar(50),
@title varchar(250),
@list2_id varchar(50)
as
if @tablename=\'tiku_koushi\'
select count(*) from tiku_koushi where title like \'%\'+@title+\'%\' and list2_id=@list2_id
GO
三、存储过程 sp_search_tiku
CREATE PROCEDURE sp_search_tiku
@tablename varchar(50),
@title varchar(250),
@list2_id varchar(10),
@pagesize int,
@page int
AS
if @tablename=\'tiku_koushi\'
begin
declare @ks int
declare @str varchar(200)
set @ks=@pagesize*(@page-1)
if not exists (select * from dbo.sysobjects where id = object_id(N\'[dbo].[temp_table91]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1)
begin
select * into temp_table91 from tiku_koushi where
title like \'%\'+@title+\'%\' and list2_id=@list2_id order
by id desc
set rowcount @pagesize
set @str=\'select * from temp_table91 where id not in
(select top \'+str(@ks)+\' id from temp_table91)\'
execute(@str)
drop table temp_table91
end
end
GO
四、search_koushi.asp
<!-- #include file="conn.asp" -->
<%
line=6
if request("page")="" then
page=1
else
page=request("page")
end if
if page<1 then
page=1
end if
title=trim(request("title"))
list2_id=trim(request("list2_id"))
set rs2=conn.execute("sp_c \'tiku_koushi\',\'"&title&"\',\'"&list2_id&"\'")
pagecount=CInt(rs2(0)line)
if(CInt(rs2(0)) mod line)=0 then
pagecount=pagecount
else
pagecount=pagecount+1
end if
if CInt(page)>=pagecount then
page=CInt(pagecount)
end if
str=""
str=str&"page="&page&"&title="&title&"&list2_id="&list2_id
set rs=conn.execute
("sp_search_tiku \'tiku_koushi\',\'"&title&"\',\'"&list2_id&"\',\'"&line&"\',\'"&CInt(page)&"\'")
if rs.eof then
response.write "no record"
else
%>
<html>
<head>
<style type="text/css">
td{font-size:12px;}
a{text-decoration:none;}
</style>
<script language="javascript">
</script>
</head>
<body>
<table width="518" border="1" bordercolorlight="000000"
bordercolordark="#ffffff"
align="center" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr bgcolor=#dfdfdf>
<td width="454" align="center" height=24 valign="middle">口试题的题目</td>
<td width="63" align="center" valign="middle">删除</td>
</tr>
<% do until rs.eof %>
<tr height=22>
<td valign="middle">・<a href=void(0)"
onclick="window.open(\'editkoushi.asp?id=<%=rs("id")%>&page=<%=page%>&title=<%=title%>&list2_id=<%=list2_id%>\',\'\',\'width=518
height=160 left=100\')">
<%=rs("title")%></a></td>
<td align="center" valign="middle">删除</td>
</tr>
<%
rs.movenext
loop
%>
<tr align="left" valign="middle" bgcolor="efeff6"
height=22>
<td colspan="2" style="padding-left:6px;">
<a href="search_koushi.asp?page=<%=1%>&title=<%=title%>&list2_id=<%=list2_id%>">首页</a> <a
href="search_koushi.asp?page=<%=page-1%>&title=<%=title%>&list2_id=<%=list2_id%>">上一页</a> <a
href="search_koushi.asp?page=<%=page+1%>&title=<%=title%>&list2_id=<%=list2_id%>">下一页</a> <a
href="search_koushi.asp?page=<%=pagecount%>&title=<%=title%>&list2_id=<%=list2_id%>">末页</a>
一共 <%=pagecount%> 页 当前页为: <%=page%>/<%=pagecount%> 页
共有 <%=rs2(0)%> 条记录</td>
</tr>
</table>
</body>
</html>
<%
rs2.close
set rs2=nothing
rs.close
set rs=nothing
end if
%>
if exists (select * from dbo.sysobjects where id =
object_id(N\'[dbo].[tiku_koushi]\') and OBJECTPROPERTY
(id, N\'IsUserTable\') = 1)
drop table [dbo].[tiku_koushi]
GO
CREATE TABLE [dbo].[tiku_koushi] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[title] [varchar] (250) COLLATE
Chinese_PRC_CI_AS NULL ,
[list2_id] [char] (10) COLLATE
Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
二、存储过程 sp_c
CREATE proc sp_c
@tablename varchar(50),
@title varchar(250),
@list2_id varchar(50)
as
if @tablename=\'tiku_koushi\'
select count(*) from tiku_koushi where title like \'%\'+@title+\'%\' and list2_id=@list2_id
GO
三、存储过程 sp_search_tiku
CREATE PROCEDURE sp_search_tiku
@tablename varchar(50),
@title varchar(250),
@list2_id varchar(10),
@pagesize int,
@page int
AS
if @tablename=\'tiku_koushi\'
begin
declare @ks int
declare @str varchar(200)
set @ks=@pagesize*(@page-1)
if not exists (select * from dbo.sysobjects where id = object_id(N\'[dbo].[temp_table91]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1)
begin
select * into temp_table91 from tiku_koushi where
title like \'%\'+@title+\'%\' and list2_id=@list2_id order
by id desc
set rowcount @pagesize
set @str=\'select * from temp_table91 where id not in
(select top \'+str(@ks)+\' id from temp_table91)\'
execute(@str)
drop table temp_table91
end
end
GO
四、search_koushi.asp
<!-- #include file="conn.asp" -->
<%
line=6
if request("page")="" then
page=1
else
page=request("page")
end if
if page<1 then
page=1
end if
title=trim(request("title"))
list2_id=trim(request("list2_id"))
set rs2=conn.execute("sp_c \'tiku_koushi\',\'"&title&"\',\'"&list2_id&"\'")
pagecount=CInt(rs2(0)line)
if(CInt(rs2(0)) mod line)=0 then
pagecount=pagecount
else
pagecount=pagecount+1
end if
if CInt(page)>=pagecount then
page=CInt(pagecount)
end if
str=""
str=str&"page="&page&"&title="&title&"&list2_id="&list2_id
set rs=conn.execute
("sp_search_tiku \'tiku_koushi\',\'"&title&"\',\'"&list2_id&"\',\'"&line&"\',\'"&CInt(page)&"\'")
if rs.eof then
response.write "no record"
else
%>
<html>
<head>
<style type="text/css">
td{font-size:12px;}
a{text-decoration:none;}
</style>
<script language="javascript">
</script>
</head>
<body>
<table width="518" border="1" bordercolorlight="000000"
bordercolordark="#ffffff"
align="center" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr bgcolor=#dfdfdf>
<td width="454" align="center" height=24 valign="middle">口试题的题目</td>
<td width="63" align="center" valign="middle">删除</td>
</tr>
<% do until rs.eof %>
<tr height=22>
<td valign="middle">・<a href=void(0)"
onclick="window.open(\'editkoushi.asp?id=<%=rs("id")%>&page=<%=page%>&title=<%=title%>&list2_id=<%=list2_id%>\',\'\',\'width=518
height=160 left=100\')">
<%=rs("title")%></a></td>
<td align="center" valign="middle">删除</td>
</tr>
<%
rs.movenext
loop
%>
<tr align="left" valign="middle" bgcolor="efeff6"
height=22>
<td colspan="2" style="padding-left:6px;">
<a href="search_koushi.asp?page=<%=1%>&title=<%=title%>&list2_id=<%=list2_id%>">首页</a> <a
href="search_koushi.asp?page=<%=page-1%>&title=<%=title%>&list2_id=<%=list2_id%>">上一页</a> <a
href="search_koushi.asp?page=<%=page+1%>&title=<%=title%>&list2_id=<%=list2_id%>">下一页</a> <a
href="search_koushi.asp?page=<%=pagecount%>&title=<%=title%>&list2_id=<%=list2_id%>">末页</a>
一共 <%=pagecount%> 页 当前页为: <%=page%>/<%=pagecount%> 页
共有 <%=rs2(0)%> 条记录</td>
</tr>
</table>
</body>
</html>
<%
rs2.close
set rs2=nothing
rs.close
set rs=nothing
end if
%>
- 上一篇: ASP不用DSN访问数据库
- 下一篇: ASP中数据库调用中常见错误的现象和解决
-= 资 源 教 程 =-
文 章 搜 索