如何解决错误在ResultSet关闭后不允许操作

时间:2015-04-28 07:49:36

标签: java css sql-server

我尝试执行此代码,它将显示以下错误:

  

ResultSet关闭后不允许使用java.sql.SQLException.Operation

这是我的代码。此代码本身显示上述错误..

<table cellspacing="0">
<%
   try{
       ResultSet rs1=st.executeQuery("select u.post_id,u.userid,u.post_txt from requestdetails as r inner join user_post as u on r.frdname=u.userid where r.userid='"+id+"'");
      while(rs1.next()){

          int post_id=rs1.getInt(1);
          int fid=rs1.getInt(2);
          System.out.println("iiii "+fid);
          String text=rs1.getString(3);
          System.out.println("txttt "+text);

          ResultSet rs3=stat.executeQuery("select * from userdetails where userid='"+fid+"'");
          if(rs3.next()){
              String na=rs3.getString("username");
          System.out.println("username  "+na);
          String img=rs3.getString("profilepic");
          System.out.println("imgee "+img);
%>         
    <tr>
        <td width="5%" style="padding-left:25;" rowspan="2"> <img src="images/<%=img%>" height="60" width="55">  </td>
        <td> </td>
        <td> </td>
        <td> </td>
    </tr>
    <tr>
        <td colspan="3" style="padding:7;"><a href="" style="text-transform:capitalize; text-decoration:none; color:#003399;" onMouseOver="" onMouseOut="" id=""><%=rs3.getString("username") %></a>  </td>
        <td> </td>
        <td> </td>
        <td> </td>
    </tr>                      
    <tr>
        <td></td>
        <td colspan="3" style="padding-left:7;"><%=text %></td> 
    </tr>
<%
    ResultSet rr=st.executeQuery("select * from comment_status where post_id='"+post_id+"'");
    while(rr.next()){
        int uid=rr.getInt("userid");
        String cmt=rr.getString("comment");
        ResultSet rrr=stat.executeQuery("select * from userdetails where userid='"+uid+"'");
        if(rrr.next()){
%>
    <tr>
        <td> </td>
        <td width="4%" bgcolor="#EDEFF4" style="padding-left:12;" rowspan="2">  <img src="" height="40" width="47">    </td>
        <td bgcolor="#EDEFF4" style="padding-left:7;" > <a href="" style="text-transform:capitalize; text-decoration:none; color:#3B5998;" onMouseOver="Comment_name_underLine()" onMouseOut="Comment_name_NounderLine()" id="cuname"><%=rrr.getString("username") %></a> </td>         
        <td align="right" rowspan="2" bgcolor="#EDEFF4">
    </tr>
    <tr>
        <td> </td>
        <td bgcolor="#EDEFF4" style="padding-left:7;" colspan="2"><%=cmt %></td>
    </tr>
    <tr>
        <td>   </td>
        <td> </td>
        <td> </td>
        <td> </td>
    </tr>
<%
      }
}
%>
    <tr>
        <td> </td>
        <td width="4%" style="padding-left:17;" bgcolor="#EDEFF4" rowspan="2">  <img src="images/" height="33" width="33">    </td>
        <td bgcolor="#EDEFF4" colspan="2" style="padding-top:15;"> 
            <form method="post" name="commenting" onSubmit="return blank_comment_check()" action="commentstatus.jsp"> 
                <input type="text" name="comment_txt" placeholder="Write a comment..." maxlength="420" style="width:100px;" id=""> 
                <input type="hidden" name="postid" value="<%=post_id%>"> 
                <input type="hidden" name="userid" value=""> 
                <input type="submit" name="comment" style="display:none;"> 
            </form> 
        </td>
    </tr>
    <tr>
        <td>   </td>
        <td> </td>
        <td> </td>
        <td> </td>
    </tr>
    <tr>
        <td>   </td>
        <td> </td>
        <td> </td>
        <td> </td>
    </tr>
    <tr>
        <td colspan="4"align="right" style="border-top:outset; border-top-width:thin;">&nbsp;  </td>
    </tr>
<%
   }
   }
   }catch(Exception e){
       e.printStackTrace();
   }
%>
</table>
</div> 

我不知道我在上面的代码中做了什么错误。

2 个答案:

答案 0 :(得分:0)

我错误地为所有查询使用了相同的语句。

当我为解决方案创建不同的语句对象时,它可以正常工作。

答案 1 :(得分:0)

在我改变这样的代码后,它工作得很好......

Statement stt=con.createStatement();     
  ResultSet rs1=stt.executeQuery("select u.post_id,u.userid,u.post_txt from requestdetails as r inner join user_post as u on r.frdname=u.userid where r.userid='"+id+"'");
  while(rs1.next()){

   int post_id=rs1.getInt(1);
   int fid=rs1.getInt(2);
   System.out.println("iiii "+fid);
   String text=rs1.getString(3);
   System.out.println("txttt "+text);

      Statement st1=con.createStatement();
       ResultSet rs3=st1.executeQuery("select * from userdetails where userid='"+fid+"'");
       if(rs3.next()){
                    String na=rs3.getString("username");
                    System.out.println("username  "+na);
                    String img=rs3.getString("profilepic");
                    System.out.println("imgee "+img);