我用循环遍历了一个结果集,如果再第二次遍历的话,
会出现”[Microsoft][ODBC 驱动程序管理器] 无效的游标状态“ 的错误,
应该用什么样的游标??请指教。。
我的代码如下:
while(rstype.next()){
System.out.println(rstype.getInt(1));
System.out.println(rstype.getString(2));
}
System.out.println("AAAAAAAAAAAA");
while(rstype.next()){
System.out.println(rstype.getInt(1));
System.out.println(rstype.getString(2));
} 第一个循环能正常打印,到第二个循环就提示上面的游标错误了,请指教。。先谢谢了

解决方案 »

  1.   

    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);我设的是这种类型的,应该没事吧。我改过,也不行,用什么类型的比较合适。
      

  2.   

    第一次遍历完了以后rstype里面已经为空了,怎么还能遍历呢 ,解决方法:把retype里面的内容存起来,放Vector里面,
      

  3.   

    哦,那看我这个问题:
    我的代码:
    public void Class_Type() throws Exception{
    String strtypesql = "select * from t_item";
    con = this.getConnection();
    stmt = this.getStatement();
    ResultSet rstype = stmt.executeQuery(strtypesql);
    while(rstype.next()){
    int typeId = rstype.getInt(1);
    System.out.println(typeId + "");
    System.out.println("rstype.getString(2)[栏目名称] = " + rstype.getString(2));
    String strclasstype = "select * from t_type where item_id = " + typeId;
    System.out.println("strclasstype = " + strclasstype);
    ResultSet rsclass = stmt.executeQuery(strclasstype);
    while(rsclass.next()){
    System.out.println("rsclass.getString(2)[类型名称] = " + rsclass.getString(2));
    }
    }
    }提示错误 :ResultSet is closed
    在外循环第二次遍历时,就会出现这个错误,为什么??
      

  4.   

    while(rsclass.next()){
    System.out.println("rsclass.getString(2)[类型名称] = " + rsclass.getString(2));
    }
    这个while已经把rsclass执行完了,就关闭了撒,.....
      

  5.   

    操作ResultSet一般是把数据拿出来了以后再操作,
      

  6.   

    Vector vec;
    while(rs.next()){
            String str=rs.getString("**");
            vec.addElement(str);
    }
    {
    ...........
         处理,
    }
      

  7.   

    ”操作ResultSet一般是把数据拿出来了以后再操作,“
    那就是做两个JAVABEAN把数据存起来,再去双重循环遍历JAVABEAN??
      

  8.   

    第一个while(rstype.next()){}
    rstype这个ResultSet已经空了,后面还去while(rstype.next()){}当然取不到了。
    可以在第一次while(rstype.next()){}里把需要的数据一次性取出来放到容器里,
    然后再从容器里取出来数据进行处理。