页面执行时调用存储过程执行,存储过程执行成功之后,页面停在原来的状态不动,但是如果存储过程执行的数据较少,则不会出现上述问题,请教大家。

解决方案 »

  1.   

    String sql="select * from dep where name='"+name+"'";
        ResultSet rs=db.execQuery(sql);
    if(rs.next())
    {
    response.sendRedirect("dep_brows.jsp");
    }else{
    sql="insert into dep(name,memo) values('"+name+"','"+memo+"')";
    db.execQuery(sql);
    response.sendRedirect("dep_brows.jsp");    这语句不一定执行???
    }
    rs.close();我的问题!  插入后该重新刷新才对!!!有时执行有时不执行!!!!
    请教!!!
      

  2.   

    try一下..看看是不是有异常抛出.
      

  3.   

    response.sendRedirect("dep_brows.jsp");    这语句不一定执行???
    如果你前面String sql="select * from dep where name='"+name+"'";结果是空的话,那是不执行
    如果你sql="insert into dep(name,memo) values('"+name+"','"+memo+"')";
    插入的数据有误,也可能因为EXPCTION而中断执行rs.close();你的RS.CLOSE()根本没有可能会执行到,所以如果这个页面一直执行,那么会造成数据库的连接数满掉..
      

  4.   

    String sql="select * from dep where name='"+name+"'";  不可能为空  都是数据库内提取的!
    sql="insert into dep(name,memo) values('"+name+"','"+memo+"')";  不可能有误!  
    rs.close()根本不可能执行? 什么意思?  写的地方不对?
      

  5.   

    String sql="select * from dep where name='"+name+"'";  不可能为空  都是数据库内提取的!如果你的name为NULL或则是"",那么取到的数据集就是空的.sql="insert into dep(name,memo) values('"+name+"','"+memo+"')";  不可能有误!  建议是你每写完一条SQL后,后面+SYSTEM.OUT.PRINTLN(SQL)出来,看看SQL是否有误,可以把SQL放到数据库先执行一遍.
    rs.close()根本不可能执行? 什么意思?  写的地方不对?
    因为你的IF(RS.NEXT)里已经将这个页面做了跳转,不管是TRUE OR FALSE,页面已经都sendRedirect了,所以下面的rs.close是肯定不会执行到的..
      

  6.   

    附加:rs.close并不能完全关闭连接
    try{
          if ( rs !=null ){
            try{ rs.close(); }catch( Exception ignore ){}
          }
          if ( Stmt != null ){
            try{ Stmt.close(); }catch( Exception ignore ){}
          }
          if ( myConn != null ){
            try{ myConn.close(); }catch( Exception ignore ){}
          }
    }catch.......
      

  7.   

    我的存储过程已经成功执行了(根据日志判断,用了八分钟),但是系统总是停留在调用存储过程的页面不动,不能正常跳转到成功页面。如果存储过程执行的时间较短则没有问题,用的是strus。
      

  8.   

    sql="insert into dep(name,memo) values('"+name+"','"+memo+"')"; 大哥这是修改语句db.execQuery(sql);   改为:db.executeUpdate(sql);