以下是我的源程序:
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>文章阅读 </title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<style type="text/css">
<!--@import url(css/jsp.css);-->
</style>
<body bgcolor="#ffffff">
<%@page import="java.sql.*"%>
<jsp:useBean id="db" scope="page" class="opendb.opendb"/>
<%
String boardId=request.getParameter("boardId");
int docId=Integer.parseInt(request.getParameter("docId"));
String sql="select title,isRe,postUser,postTime,postCon from content where boardId=\'"+boardId+"\'and docId=\'"+docId+"\'";
ResultSet rs=db.executeQuery(sql);
rs.next();
String title=rs.getString("title");
boolean isRe=rs.getBoolean("isRe");
String postUser=rs.getString("postUser").trim();
String postTime=rs.getString("postTime");
String postCon=rs.getString("postCon");
String postSign="";
if(isRe)postSign="re:";
rs.close();
sql="select boardNameCn,boardMaster,number from board where id=\'"+boardId+"\'";
rs=db.executeQuery(sql);
rs.next();
String boardNameCn=rs.getString("boardNameCn");
String boardMaster=rs.getString("boardMaster");
int number=rs.getInt("number");
rs.close();
sql="select nickname,sign from bbsUser where uid=\'"+postUser+"\'";
rs=db.executeQuery(sql);
rs.next();
String nickname=rs.getString("nickname");
String sign=rs.getString("sign");
rs.close();
%>
<table width="600" border="0" cellspacing="2" cellpadding="1">
  <tr bgcolor="#3366ff">
     <td width="170"><b><font color="#ffffff">文章阅读 </font></b></td>
     <td width="216">
       <div align="center"><b><font color="#ffffff">JSP论坛 </font></b></div></td>
     <td width="200">
       <div align="center"><b><font color="#ffffff">版主【 <%=boardMaster%>】 </font></b></div></td>
  </tr>
</table>
<hr>
<table width="602" border="2" cellspacing="2" cellpadding="1" bgcolor="#ccccff">
   <tr>
     <td>
      <table width="100%" border="0" cellspacing="2" cellpadding="1">
        <tr>
          <td width="69"><font color="#000000">发信人:</font></td>
          <td width="171"><font color="#000000"><%=postUser%>(<%=nickname%>)</font></td>
          <td width="55"><font color="#000000">讨论区:</font></td>
          <td width="287"><font color="#000000"><%=boardNameCn%></font></td>
         </tr>
         <tr>
          <td width="69"><font color="#000000">标 题:</font></td>
          <td colspan="3"><font color="#000000"><%=postSign+title%></font></td>
         </tr>
         <tr>
          <td width="69"><font color="#000000">发信站:</font></td>
          <td colspan="3"><font color="#000000">JSP论坛(<%=postTime%>)</font></td>
         </tr>
</table>
---------------<br>
<font color="#000000"><%=postCon%></font><br>
---------------<font color="#000000"><br>
<%=sign%></font></td>
</tr>
</table>
<hr>
<table width="600" border="0" cellspacing="2" cellpadding="1">
  <tr bgcolor="#ccccff">
    <td width="62">
      <div align="center"><a href="logon1.jsp">首页 </a></div>
    </td>
    <td width="147">
      <div align="center"><a href="bbsall.jsp">全部讨论区 </a></div>
    </td>
    <%
if(docId>1){
%>
    <td width="90">
      <div align="center"><a href="content.jsp?boardId=<%=boardId%>&docId=<%=docId-1%>">上一篇 </a></div>
    </td>
    <%}
if(docId<number){%>
    <td width="90">
      <div align="center"><a href="content.jsp?boardId=<%=boardId%>&docId=<%=docId+1%>">下一篇 </a></div>
    </td>
    <%}%>
    <td width="89">
      <div align="center"><a href="bbsdoc.jsp?boardId=<%=boardId%>">本讨论区 </a></div>
    </td>
    <td width="96">
      <div align="center"><a href="post.jsp?boardId=<%=boardId%>&re=<%=docId%>">回文章 </a></div>
    </td>
  </tr>
</table>
</body>
</html>
tomcat下运行出现“无效光标状态”错误
不知道怎么解决,预计是rs.next();
                    .....
                    rs.close();
的错误!本人初学.不知道如何解决!肯定大大们帮忙!不胜感激!

解决方案 »

  1.   

    if (rs.next()) {
        ...
    }
    rs.close();1,把所有从rs中取数据的操作放在if里面;
    2,你目前没有对rs中是否有数据做判断,所以当next返回false的时候,你再去getString,就会报错了。
      

  2.   

    你是说rs.next()返回false吗?
    那应该是你的sql语句有问题:有可能它的查询结果就是空的。试着把sql语句拷贝出来单独在sqlplus或其他database客户端运行一下,确定你的boardId和docId条件是否能够查询出数据?