rs = sm.executeQuery("select * from student");
    //因为rs指向结果集的第一行的上一行,即头部
    //循环取出
    rs.next();
   
 /*   int a = rs.getInt(3);
    System.out.println(a);   //这样会出错误,先输出第三列的数据,就不能输出就二列了
    String s=rs.getString(2);
    System.out.println(s);
   */ 
 /*   String s=rs.getString(2);
    System.out.println(s);
    int a = rs.getInt(3);   //这样就可以,,只是输出哪一列的顺序不同,就会出错,怎么回事??
    System.out.println(a);
    */
/*  int a=rs.getInt("age");  直接用字段名 也是一样啊,,
    System.out.println(a);   
    String s=rs.getString("stuName");
    System.out.println(s); */ //错误[Microsoft][ODBC SQL Server Driver]无效的描述符索引
 
    
    String s=rs.getString("stuName");
    System.out.println(s);
    int a=rs.getInt("age");
    System.out.println(a);

解决方案 »

  1.   

    刚刚用mysql试了下没有楼主说的问题,至于SQL Server没有测,但我觉得返回一个ResultSet结果集读取列顺序不通应该不会有问题吧。
      

  2.   

    lz意思是说先写出第三列,就不能查到第二列了么?
    我也是刚用mysql没有你说的问题,等待用mssqlserver的吧,
    都是只报“错误[Microsoft][ODBC SQL Server Driver]无效的描述符索引”这个错?
    另外lz可以单步一下,看看有没有什么收获
      

  3.   

     rs.getString(1)这种方式只能从头独到尾。你可以用直接读取字段的方式re.get类型名(“字段名”);这个可以不按照循序读取。
      

  4.   

    re.get类型名(“字段名”) 这种方式 也是一样啊,,,,