你必须按照数据库里字段的顺序读,不然就出错。建议你sql语句不要写*,而是写出具体的查询字段,这样,你按照自己的查询字段的顺序安排来读取就可以了,而且也绝对不会产生问题。

解决方案 »

  1.   

    看看你写的rs.get()里面的字段有没有和数据库里面的对应上,这个很关键。
      

  2.   

    其實主要是和數據庫廠商發佈的jdbc driver有關係數據庫恐怕都是支持隨意讀取的吧~Oo~否則太遜了
      

  3.   

    检查一下get()函数的类型是否与字段类型匹配
      

  4.   

    rs.getString()里面不要写字段名。。写列的标好不容易出错。。而且效率又高。。
    标好从1开始~
      

  5.   

    有关[Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column之类的错误。
        具体说明如下及分类解决如下:
        (2.1)如果你采用jdbc-odbc驱动。那么只能告诉你,你必须按照查询的顺序去获取顺序的字段。如果打乱顺序,或重复查询同一列,将会获取null或抛出上面的异常。
        (2.2)如果你采用weblogic jdriver驱动。那么将不支持jdbc2.0 method。
        (2.3)如果你采用MS自己的JDBC驱动。那么在查询语句中不包含blob或clob字段(就是Image和Text类型)的时候,查询是支持re-read方式的,可以非顺序查询。但是一旦包含的blob或clob字段。那么就必须按照顺序查询,且不支持重复查询===============
        上面说到了问题的所在了,那么如何解决呢?建议大家更换驱动,可以获取第三方的MS SQL Server驱动。比如JSQLConnect,JTurbo等等驱动。
         目前为了解决ms的re-read问题,我采用了JSQLConnect驱动,效果很好。
         (当然,那些不是免费的,不过可以到www.freetds.com上获取一个免费的,不过据说效果不是很好,而且版本偏低,可以尝试一下)