一个Statement只能为一个ResultSet提供数据.
应该再创建一个Statement,
Statement  stmt2=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); 
ResultSet rs_zc=stmt2.executeQuery(sql_zc310);

解决方案 »

  1.   

    stmt只是一个连接,它只能保持一个ResultSet。
    当rs_zc.close();rs_notice.close();时:rs_notice已经覆盖rs_zc了。
    “但把最后一条语句:rs_notice.close()放到 //ResultRet(2)后”:rs_zc是在rs_zc关闭后从新得到的。
    若需要两个(以上)结果集同时使用,最后有自己的数据结构它们保存起来。一个时候只能有一个ResultSet被使用。
      

  2.   

    直接用那个会出很多问题。封一次比较好,最好是用resultset取数据,用cachedrowset操作数据
    import sun.jdbc.rowset.CachedRowSet;  public CachedRowSet executeQuery(String sql) throws java.sql.SQLException {
        CachedRowSet cst = new CachedRowSet();
        try {
          conn = db.getConnection();
          ps = conn.createStatement();
          rs = ps.executeQuery(sql);
          cst.populate(rs);
          rs.close();
        }
        catch (SQLException e) {
          System.out.println(e.getMessage());
        }
        finally {
          db.CleanConnection(conn, ps, rs);
        }
        return cst;
      }
      

  3.   

    一个Connection也只能为Statement提供连接吗?