asp 用存储过程实现数据分页

发表于:2007-07-14来源:作者:点击数: 标签:
一、创建表 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] IDENTI

一、创建表 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

%>

本新闻共2页,当前在第1页  1  2  

原文转自:http://www.ltesting.net