ResultSet rs=stmt.executQuery ("select id,g_id form table1 where id=1");
if (rs.next()){ResultSet rs1=stmt.executeQuery("select id,title,content form table2 where id="+rs.getString("g_id"));
while(rs1.next()){
out.println(rs1.getString("title"));
}
}上面的例子这种查询方法是不是有错的呢,还是我的语法有错,反正中间那个查询不能实现,有其实解决办法没有,我用标签传递参数让他返回值也不能实现。。急啊,各们帮助一小弟一下,小弟刚学习,jsp那个开发的模式还停留在,asp的思想里。

解决方案 »

  1.   

    我觉得你的if (rs.next()){这个判断有点问题呀
      

  2.   

    <%
    ResultSet rs=stmt.executeQuery ("select id,g_id from soyo_game ");
    while(rs.next()){ResultSet rs1=stmt.executeQuery("select id,g_file from soyo_gamefile where g_id="+rs.getString("id"));
    while(rs1.next()){
    out.println(rs1.getString("g_file"));
    out.println("</br>");
    }
    }
    %>这样就会出错的哈,完整程序应该是这样,出错代码如下:
    javax.servlet.ServletException: Operation not allowed after ResultSet closed
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.test_jsp._jspService(test_jsp.java:81)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.sql.SQLException: Operation not allowed after ResultSet closed
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
    com.mysql.jdbc.ResultSet.checkClosed(ResultSet.java:666)
    com.mysql.jdbc.ResultSet.next(ResultSet.java:7280)
    org.apache.jsp.test_jsp._jspService(test_jsp.java:67)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)帮助解决一下,急啊,
      

  3.   

    <%
    ResultSet rs=stmt.executeQuery ("select id,g_id from soyo_game ");
    while(rs.next()){ResultSet rs1=stmt1.executeQuery("select id,g_file from soyo_gamefile where g_id="+rs.getString("id"));
    while(rs1.next()){
    out.println(rs1.getString("g_file"));
    out.println("</br>");
    }
    }
    %>
      

  4.   

    xredleaf(劳累似牛 你好,能不能解释一下为什么用要重新设置一个stmt1,为什么不能用相同stmt的啊,俺不明白。
      

  5.   

    哎,大哥,你太牛了,行了,出来,也知道为什么为重新弄一个Statement对象。谢谢 给分,