A default ResultSet object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. 一个缺省的ResultSet对象不可以更新,它有一个向前移动的游标(指针),因而你可以得到它的各个row,但你只可以得到一次而且只可以从第一个到最后一个所以抛出ResultSet can not re-read row data for column 2. ResultSey不能读出第二个column的row data

解决方案 »

  1.   

    weimenren(宁静以致远,淡泊以明志) ,
      你说的那个游标是给row 用的吧? 不是column.ttoc (知识都学杂了) 
      我觉得你可以先用列的名代替列号试试。
      

  2.   

    如:
        while(rs.next()){
          System.out.println(rs.getObject("Column3_Name"));
          System.out.println(rs.getObject("Column2_Name"));
        }
      

  3.   

    to lhb525(风中之烛)
       这个方法我已经试验过了,结果是一样的~~~~但还是谢谢你的回复~~
      

  4.   

    你是否只有一个字段??给出你的sql
      

  5.   

    Sorry, 还是英文不到家我重新查了一下这个错误一般是因为ResultSet对象包含一个BLOB字段(如text, ntext, 或者image 类型)。 驱动程序不能返回一个BOLB字段,因为ResultSet尺寸的限制,他不能cache所有的Blob的内容。下面是一个测试的程序:create table myTable(fld1 int, fld2 varchar(20), re text);insert into myTable values (1, 'Joseph', 'Text for Joseph');
    insert into myTable values (2, 'Michael', 'Text for Michael');
    insert into myTable values (3, 'Thomas', 'Text for Thomas');以下是读取表的例子Statement stmt = connection.createStatement();
    String s = "SELECT fld1, fld2, re FROM myTable";
    ResultSet rs = null;
    rs = stmt.executeQuery(s);
    int fld1;
    String fld2;
    String re;
    while (rs.next())
    {
        re = rs.getString("re"); //在这里取值就会出现以上的Exception
        fld1 = rs.getInt("fld1");
        fld2 = rs.getString("fld2");
        //re = rs.getString("re"); //你应该在这里取值
        System.out.println(fld1 + ", " + fld2 + ", " + re);
    }                                            
    rs.close();
      

  6.   

    谢谢 weimenren(宁静以致远,淡泊以明志)兄  问题解决,原因也找到了,谢谢