out.write("<name> "+rec.getString(1).trim()+"</name>");

解决方案 »

  1.   

    是啊,看看错误信息先,才能分析是什么问题啊rec.getString(1) 是这个"1"的问题吧……
      

  2.   

    错误提示是:Error 3:java.sql.SQLException:[Microsoft][ODBC SQL Server Driver]无效的描述符索引0S1002
    跟它对应有一个异常处理:
     }catch(SQLException e3)
              {
                  System.out.println("Error 3 :"+e3.toString()+e3.getErrorCode()     +e3.getSQLState());    }
    我想跟rec.getString(1)的"1"没有多大的关系,因为rec.getString(2),rec.getString(3)......一样不行,而System.out.println(rec.getString(1)+"\t"+rec.getString(3))没有问题!
    谢谢大家!
      

  3.   

    可能是因为你读到的这个表的字段是空的,或者只有一个。为什么不试试getString(0)?
      

  4.   

    给你两个建议,你先试试
    1. 不要用 getString(数字),用 getString("字段名") 试试
    2. out是一个 JspWriter,推荐你使用 print 方法而不是 write 方法。另外,在调用的时候也不需要指定 offset 和 length。另外,问一下
    System.out.println(rec.getString(1)+"\t"+rec.getString(3) 的结果是什么?
    建议你最好在使用一个东西之前先判断一下它是否为null,这样有助于解决问题。
      

  5.   

    试过了还是不行
    System.out.println(rec.getString(1)+"\t"+rec.getString(3)) 的结果: Jacky    female
     如果我写成 String line="<name>"+"Jack"+"</name>";
                out.write(line,0,line.length());
            就可以,换成String line="<name>"+rec.getString(1)+"</name>";
                         out.write(line,0,line.length());   就不行
    有一点说明一下:out是BufferedWriter对象