jsp分页怎么只显示了一条记录

<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*"%><html><body><%!intp... <%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>
<html>
<body>
<%!
int pageSize=5;//每页显示记录数
int pageCount=0;//分页后的总页数
%>
<form action="" methed="get">
输入要显示的页码号
<input type="text" name="showPage"size="4">
<input type="submit" name="g" value="提交">
</form>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){out.println("驱动程序加载错误!");}
try{

con=DriverManager.getConnection("jdbc:odbc:db","","");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sql.executeQuery("select * from news where cid=1 and audit=1");//返回可滚动的结果集
rs.last();//游标移到最后一行

int numRow=rs.getRow();//获取最后一行的行号,取得记录总数
//计算分页后总行数
pageCount=(numRow%pageSize==0) ? (numRow/pageSize):(numRow/pageSize+1);
int showPage=1;//当前显示的初始页码
%>
<p>共有<%=pageCount%>页,每页显示<%=pageSize%>条记录<br>
<%
String integer=request.getParameter("showPage");//获取客户想要显示的页码
if(integer==null)
{
showPage=1;
}
try{
showPage=Integer.parseInt(integer);
}
catch(NumberFormatException e)
{
showPage=1;
}

if(showPage<=1)
{
showPage=1;
}
if(showPage>=pageCount)
{
showPage=pageCount;
}
%>
<p>第<%=showPage%>页
<% //若要显示showpage页,游标应移到的位置
int posion=(showPage-1)*pageSize+1;
rs.absolute(posion);//设置游标位置
%>
<table>
<tr>
<th with="100">标题<br>
</tr>
<%
for(int i=1;i<=pageSize;i++);//从结果集的posion开始输出pageSize记录
{
%>
<a href=news.jsp?id=<%=rs.getInt("id")%>><%=rs.getString(3)%></a>
<%
rs.next();
}
%>
</table>
<%
con.close();
}
catch(SQLException el){out.println("分页显示错误!");}
%>
<a href="list.jsp">返回</a>
</body>
</html>
想显示5条记录的,为什么只显示了1条
展开
 我来答
tuoxingzhou
2011-06-20 · TA获得超过191个赞
知道答主
回答量:93
采纳率:0%
帮助的人:36.8万
展开全部
rs=sql.executeQuery("select * from news where cid=1 and audit=1");//返回可滚动的结果集
rs.last();//游标移到最后一行

int numRow=rs.getRow();//获取最后一行的行号,取得记录总数
//计算分页后总行数
Sql语句有问题不能查出来5条的
cid和audit应该有一个是主键吧,是唯一标示的,所以只能查出来一条
select top 5 * from news
然后如果查出来多条应该用while来
rs = ps.executeQuery();
while (rs.next()) {
c = new Comwanted(rs.getInt(1), rs.getInt(2), rs.getString(3),rs.getString(4), rs.getString(5),rs.getString(6), rs.getString(7));
}
显示的时候应该用for循环打印你查出来得东西
或者直接在wehile中循环打印
List<User> list=page1.getList();
for(User u:list){
%>
<div style="width: 700px; float: left"><%=u.getTname() %></div>
<div style="width: 600px; float: left"><%=u.getTid() %></div>
<%} %><br>
如果自己还是没弄出来
把代码发到474096321@qq.com这是我的邮箱
我改好正确的给你发回去
追问
已经搞定了,还是谢谢
江月此清秋3415
2011-06-19 · TA获得超过1710个赞
知道大有可为答主
回答量:3485
采纳率:0%
帮助的人:1747万
展开全部
//出错的地方我注上了原因,你看看
int pageSize = 5;
int rowCount = 0; //总的记录数
int pageCount; //总的页数
int currPage; //当前页数
nrs.last();
String strPage;
strPage = request.getParameter("cupage");

if (strPage == null) {
currPage = 1;
} else {
currPage = Integer.parseInt(strPage);
if (currPage < 1){
currPage = 1;}
}
//nrs.absolute(-1);
rowCount = nrs.getRow();
pageCount = (rowCount + pageSize - 1) / pageSize;
if (currPage > pageCount){
currPage = pageCount; }
int thepage = (currPage - 1) * pageSize;
int n = 0;

nrs.absolute(thepage + 1);

while(n <(pageSize) && !nrs.isAfterLast()){
n++;
//这里出现问题了,不要用nrs.next()这会使数据指向下一条//
//或者将前面改成 nrs.absolute(thepage );//不加一,则下面的 nrs.next()自动跳到+1后的位置
//
if (nrs.next()) {
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式