对数据库操作的方法如下
public static List<recordA> getAll() {
List<recordA> list = new ArrayList<recordA>();
Connection conn = null;
Statement state = null;
ResultSet rs = null; try {
conn = getDBA.getConn();
state = conn.createStatement();
rs = state
.executeQuery("select ID,RECORD_DATE,ADDRESS,SPEED,LIMITSPEED,POLICE_NAME,CAR_CODE from Record"); while (rs.next()) {
recordA temp = new recordA();
temp.setID(rs.getInt("ID"));
temp.setRECORD_DATE(rs.getString("RECORD_DATE"));
temp.setADDRESS(rs.getString("ADDRESS"));
temp.setSPEED(rs.getInt("SPEED"));
temp.setLIMITSPEED(rs.getInt("LIMITSPEED"));
temp.setPOLICE_NAME(rs.getString("POLICE_NAME"));
String CAR_CODE = rs.getString("CAR_CODE");
temp.setCAR_CODE(CAR_CODE); recordC subTemp = useRecordC.queryOne(CAR_CODE); temp.setCAR_TYPE(subTemp.getCAR_TYPE());
temp.setCAR_COLOR(subTemp.getCAR_COLOR());
list.add(temp); }
} catch (SQLException ee) {
System.out.println(ee.getMessage());
} finally {
getDBA.close(rs, state, conn);
}
return list; }
错误提示是[Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.我可以读取到ID,RECORD_DATE,ADDRESS,SPEED,LIMITSPEED,POLICE_NAME,CAR_CODE的值,但是我读取不到CAR_TYPE和CAR_COLOR的值  PS:     useRecordC.queryOne(CAR_CODE)是对另外一个数据库的操作是不是while(rs.next())语句块中不能在调用其他数据库的操作了? 

解决方案 »

  1.   

    根据楼主的描述,初步判断是queryOne()中的问题。
    在queryOne()方法中,楼主也使用了ResultSet吧?是否调用过其next()方法?
    如果没调用,调用一次就行啦。
    如果还没有解决问题,请把相关的代码贴出来。
      

  2.   

    这是我的queryOne()方法
    public static recordC queryOne(String CAR_CODE) { Connection conn = null;
    Statement state = null;
    ResultSet rs = null;
    recordC temp = new recordC(); try {
    conn = getDBC.getConn();
    state = conn.createStatement();
    rs = state.executeQuery("select * from car where CAR_CODE='"
    + CAR_CODE + "'");
    temp.setCAR_CODE(rs.getString("CAR_CODE"));
    temp.setCAR_TYPE(rs.getString("CAR_TYPE"));
    rs.next();
    } catch (SQLException ee) {
    System.out.println(ee.getMessage());
    } finally {
    getDBC.close(rs, state, conn);
    } return temp;
    }
      

  3.   

    rs.next();写错地方了,写在取值之前:
    rs = state.executeQuery("select * from car where CAR_CODE='"+ CAR_CODE + "'");
    if( rs.next() )

      temp.setCAR_CODE(rs.getString("CAR_CODE"));
      temp.setCAR_TYPE(rs.getString("CAR_TYPE"));
    }
      

  4.   

    谢谢你的回复异常不抛出了,可是为什么我依然读不出CAR_CODE和CAR_TYPE字段呢?再次感谢
      

  5.   

    可能是表中没有符合要求的记录。你这样写:
    String sql = "select * from car where CAR_CODE='"+ CAR_CODE + "'";
    System.out.println( sql ); //把SQL语句输出到控制台上
    rs = state.executeQuery( sql );
    if( rs.next() )
    {
      temp.setCAR_CODE(rs.getString("CAR_CODE"));
      temp.setCAR_TYPE(rs.getString("CAR_TYPE"));
    }把控制台输出的SQL语句拿数据库中运行一下,看看能不能查出结果?
      

  6.   

    貌似是getAll()里
    temp.setCAR_TYPE(subTemp.getCAR_TYPE()); 
    temp.setCAR_COLOR(subTemp.getCAR_COLOR()); 
    但错误在哪我就郁闷了
      

  7.   

    问题解决,结贴走人!
    感谢accp2006的帮助,200分全给你了