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

Java 如何解决ResultSet关闭后不允许的错误操作,java,css,sql-server,Java,Css,Sql Server,我尝试执行此代码,它将显示以下错误: 结果集关闭后不允许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

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

结果集关闭后不允许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> 

“height=“60”width=“55”>

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

我犯了一个错误,在所有查询中使用了相同的语句


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

在我这样更改代码后,它工作正常

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);

发布完整的堆栈跟踪!!这是完整的堆栈跟踪bro..上面的标记堆栈跟踪已关闭..不,它没有指示您在哪一行遇到异常..!检查此项,谢谢兄弟..我已完成..这是完整的代码…解释您的更改以及您的代码现在工作的原因;)。您只需查看我上面的错误代码即可t代码为所有查询创建了相同的语句对象。也没有为语句分配对象。这就是为什么它显示错误的原因。在我将代码更改为“为不同查询创建不同的语句对象”后,它工作正常。。