这是部分代码.用javabean连接数据库,数据库是access.分别插入了两个数据库表 
tomcat 5.0+jdk1.4.2
错误:java.sql.SQLException ResultSet is closed
String title=new String(request.getParameter("title").getBytes("ISO-8859-1")); 
String sql1="select * from tbcrlist where title=´"+title+"´"; 
ResultSet rs1=db.executeQuery(sql1); 
if(rs1.next()){%> 
<script language="javascript"> 
javascript:alert("同样标题的问卷已经存在"); 
</script><a href="javascript:history.back();">返回</a> 
<% 

else{ 
String sql="select max(qid) as a from tbcrlist "; 
ResultSet rs=db.executeQuery(sql); 
if(rs.next()) //数据库中已经有记录则编号加1 
{int su=0; 
su=rs.getInt("a"); 
qid=su+1; 
rs.close();} //数据库中没有记录则编号为1 
else 
{rs.close(); 
qid=1;} 
String subject=new String(request.getParameter("subject").getBytes("ISO-8859-1")); 
String creater=(String)session.getValue("logname"); 
String startdate=new String(request.getParameter("startt").getBytes("ISO-8859-1")); 
String enddate=new String(request.getParameter("endt").getBytes("ISO-8859-1")); 
String situation=request.getParameter("active"); 
String sql2="insert into tbcrlist(qid,title,subject,creater,startdate,enddate,situation)values("+qid+",&acute;"+title+"&acute;,&acute;"+subject+"&acute;,&acute;"+creat er+"&acute;,&acute;"+startdate+"&acute;,&acute;"+enddate+"&acute;,&acute;"+situation+"&acute;)"; 
int rs2=db.executeUpdate(sql2); 
out.println(rs2); 
rs1.close(); 
String id=String.valueOf(qid); 
session.setAttribute("qid",id); 
%> 

解决方案 »

  1.   

    conn被第二个rs使用后,前面的rs自动关闭
      

  2.   

    不好意思!我是新手,修改javabean吗?在jsp代码里可以实现用多个conn吗?
      

  3.   

    全局只用一个rs就够了,没必要用那么多。在最后一次执行后在rs.close();即可。
      

  4.   

    String title=new String(request.getParameter("title").getBytes("ISO-8859-1"),"gb2312"); 
    String sql1="select * from tbcrlist where title='"+title+"'"; 
    ResultSet rs1=db.executeQuery(sql1); 
    if(rs1.next()){%> 
    <script language="javascript"> 
    javascript:alert("同样标题的问卷已经存在"); 
    </script><a href="javascript:history.back();">返回</a> 
    <% 

    else{ 
    String sql="select max(qid) as a from tbcrlist "; 
    ResultSet rs=db.executeQuery(sql); 
    if(rs.next()) //数据库中已经有记录则编号加1 
    {int su=0; 
    su=rs.getInt("a"); 
    qid=su+1; 
    rs.close();} //数据库中没有记录则编号为1 
    else 
    {rs.close(); 
    qid=1;} 
    String subject=new String(request.getParameter("subject").getBytes("ISO-8859-1")); 
    String creater=(String)session.getValue("logname"); 
    String startdate=new String(request.getParameter("startt").getBytes("ISO-8859-1")); 
    String enddate=new String(request.getParameter("endt").getBytes("ISO-8859-1")); 
    String situation=request.getParameter("active"); 
    String sql2="insert into tbcrlist(qid,title,subject,creater,startdate,enddate,situation)values("+qid+",&acute;"+title+"&acute;,&acute;"+subject+"&acute;,&acute;"+creat er+"&acute;,&acute;"+startdate+"&acute;,&acute;"+enddate+"&acute;,&acute;"+situation+"&acute;)"; 
    int rs2=db.executeUpdate(sql2); 
    out.println(rs2); 
    rs1.close(); 
    String id=String.valueOf(qid); 
    session.setAttribute("qid",id); 
    %>