你查询第一次后,不用关闭rs1啊。
用rs1.beforeFirst()把游标提到第一条记录之前。
再用while(rs1.next()){...}来做试试

解决方案 »

  1.   

    因为你前面已经rs1.close();
    你再看看这:
    ResultSet rs2=st.executeQuery(sql2);
    while(rs2.next())
    {
    String a2=rs1.getString("name");   //怎么是rs1呢????所以会错
    ...
    }
      

  2.   

    可能是正在操作数据库的同时,另一个程序也在运行中,也在对数据库进修操作,所以出现这个问题。 
    两次加载驱动程序与数据库进行连接和关闭,应该没有问题的。只要有先后的顺序就可以了。
    其实你完全可采用下面的方法:
    stmt.execute(sql1+";"+sql2);
        ResultSet rs=stmt.getResultSet();
        while(rs.next())
          System.out.println(rs.getString(1));
        stmt.getMoreResults();
        rs=stmt.getResultSet();
        while(rs.next())
          System.out.println(rs.getString(1));
      

  3.   

    同意 peppi(一凡) 的看法
      

  4.   

    这个问题我遇到过,你需要再次创建一个statement就行了!
      

  5.   

    这毫无疑问是:
    peppi(一凡) 的看法
    killwin(海龙) :
    再创建一个statement,是在ResultSet嵌套的情况下!
      

  6.   

    呵呵,不好意思,夜里犯困,这个写错了,第二段代码应该是while(rs2.next())的。我试过 killwin(海龙) 的方法,再次创建statement还是出现这样的错误提示。beyond_xiruo(希偌)的方法,但是会出现 [Microsoft][ODBC Microsoft Access Driver] 在 SQL 语句结尾之后找到字符。的错误提示。
      

  7.   

    哈哈,刚才终于弄好了。beyond_xiruo(希偌)的原理提醒了我,然后按照killwin(海龙)所说的,多创建一个statement,在进行第二次查询前把第一个statement给关闭掉就可以了。