如果你用的是SQL2008以后的数据库版本,可以这样
网站制作、建网站找专业网站设计公司成都创新互联:定制网站、模板网站、仿站、小程序开发、软件开发、重庆App定制开发等。做网站价格咨询成都创新互联:服务完善、十余年建站、值得信赖!网站制作电话:028-86922220
SELECT ROW_NUMBER() OVER (ORDER BY B.HID DESC) BH, B.*
FROM
(SELECT h.[医院名称],k.[科室名称],k.[科室编号],k.id,k.kid
from [医院表] as h right join [科室表] as k on k.hid = h.hid
) B
WHERE BH BETWEEN ($page_size * $page_num) AND ($page_size * $page_num +$page_size)
sql server 2008都出来了,如果是现在从Oracle迁移到Ms Sql Server的话建议和你们领导说说换05最好是08,相对来说Oracle的价格应该更贵吧。05,08性能上也提升了,再者就是加了不少函数,存储过程分页05,08的用ROW_NUMBER()函数是很方便的。还有不要select * ,写出具体字段。在索引上作优化,索引作的好即使是2000,2W条数据没什么问题。
如果改成存储过程分页,不改asp程序基本不可能。
第一个文件pagescount.jsp
%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
base href="%=basePath%"
titlepagescount/title
meta http-equiv="pragma" content="no-cache"
meta http-equiv="cache-control" content="no-cache"
meta http-equiv="expires" content="0"
meta http-equiv="keywords" content="keyword1,keyword2,keyword3"
meta http-equiv="description" content="This is my page"
!--
link rel="stylesheet" type="text/css" href="styles.css"
--
/head
body
%!
//设置每张网页显示三笔记录(每页显示的记录数)
int PageSize=3;
//设置欲显示的页数(初始页)
int ShowPage=1;
//ResultSet的记录笔数(总记录数)
int RowCount=0;
//ResultSet分页后的总数(总页数)
int PageCount=0;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
%
%!
//连接数据库并初始数据
public void jspInit()
{
try{
String Driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String DBurl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user = "sa";
String password = "sa";
Class.forName(Driver);
conn=DriverManager.getConnection(DBurl,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("select * from titles");
//将指标移至最后一条记录
rs.last();
//获取记录总数
RowCount=rs.getRow();
//计算显示的页数(关键)
PageCount=((RowCount%PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//执行关闭各个对象的操作
public void jspDestory()
{
try{
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
%
/body
/html
第二个文件
pages.jsp
%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%
%@include file="pagescount.jsp" %
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
base href="%=basePath%"
title分页显示/title
meta http-equiv="pragma" content="no-cache"
meta http-equiv="cache-control" content="no-cache"
meta http-equiv="expires" content="0"
meta http-equiv="keywords" content="keyword1,keyword2,keyword3"
meta http-equiv="description" content="This is my page"
meta http-equiv="author" content="sunxch"
!--
link rel="stylesheet" type="text/css" href="styles.css"
--
/head
body bgcolor="cce8cf"
center
%
String ToPage=request.getParameter("ToPage");
//判断是否取得ToPage参数
if(ToPage!=null)
{
//取得指定显示的分页页数
ShowPage=Integer.parseInt(ToPage);
//下面的语句判断用户输入的页数是否正确
if(ShowPage=PageCount)
{
ShowPage=PageCount;
}
else if(ShowPage=0)
{
ShowPage=1;
}
}
//计算欲显示页的第一笔记录位置
rs.absolute((ShowPage-1)*PageSize+1);
%
h3当前在第
font size="4" color="red"%=ShowPage %/font页,共%=PageCount %页/h3
p
%
//利用for循环配合PageSize属性取出一页中的数据
for(int i=1;i=PageSize;i++)
{
%
table border="1" width="90%"
tr
td书名ID/td
td%=rs.getString("pub_id") %/td
td书名/td
td%=rs.getString("title") %/td
td类型/td
td%=rs.getString("type") %/td
td价格/td
td%=rs.getFloat("price") %/td
/tr
tr
td备注/td
td colspan="7"%=rs.getString("notes") %/td
/tr
/table
p
%
//下面的语句用于输出最后一条记录时,将指针移到最后一笔记录之后
if(!rs.next())
{
//跳出for循环
break;
}
}
%
table
tr
%
//判断当前是否在第一页,不是第一页,则显示到第一页与下一页的连接
if(ShowPage!=1)
{
%
td width=150
a href="pages.jsp?ToPage=%=1 %"第一页/a
/td
td width=150
a href="pages.jsp?ToPage=%=ShowPage-1 %"上一页/a
/td
%
}
//判断是否在最后一页,是,则显示到最后一页和下一页
if(ShowPage!=PageCount)
{
%
td width=150
a href="pages.jsp?ToPage=%=ShowPage+1 %"下一页/a
/td
td width=150
a href="pages.jsp?ToPage=%=PageCount %"最后一页/a
/td
%
}
%
/tr
tr
td colspan="4" align="center"
form action="pages.jsp" method="post" name="form1"
input type="text" name="ToPage" value="%=ShowPage %" style="height:25px;width:40px"页
a href="javascript:window.document.form1.submit();"GO/a
/form
/td
/tr
/table
/center
script language="javascript"
function go()
{
window.document.form1.submit();
}
/script
/body
/html
设置三个变量,当前页$pageNow ,数据总条数$rowCount,再加一个每页显示的数目$pageRow
把datagrid的翻页功能打开,设置显示多少行,它会帮你翻页的
或者自己写一个存储过程,每次返回哪些行就行了