if(rs.next())
{
session.setAttribute("dd_NO",rs.getString("DA_NO"));
}

解决方案 »

  1.   

    不要直接去取值,先判断有没有这一列:
    ResultSetMetaData rsmt = rs.getMetaData();
    Boolean b = false;
    for(int i=0; i<rsmt.getColumnCount(); i++)
      if(rsmt.getColumnName(i).equals("DA_NO")) b = true;
    if( b ) System.out.println("DA_NO存在")
      

  2.   

    to zhmt((雪狼-独行)):
       o ,那有什么比较好的方法吗?
      

  3.   

    to zhmt((雪狼-独行)):ResultSetMetaData rsmt = rs.getMetaData();
    boolean b = false;
    for(int i=0; i<rsmt.getColumnCount(); i++)
      if(rsmt.getColumnName(i).equals("DA_NO")) b = true;
    if( b ) System.out.println("DA_NO存在")不行啊,出现:
    javax.servlet.ServletException: [Microsoft][ODBC 驱动程序管理器] 无效的描述器索引
      

  4.   

    楼主是如何定义Statement和ReslutSet的?
      

  5.   

    javax.servlet.ServletException:这个不是数据库异常啊,说明不是数据这块出的异常啊
      

  6.   

    rsTmp = conn.executeQuery(sqls);
     if(rsTmp==null || !rsTmp.next()) {
    out.println("<center>");
    out.println("未找到任何数据!");
    也许对你有帮助
      

  7.   

    完整的代码如下:
    Connection con = DriverManager.getConnection("jdbc:odbc:abc","name","test"); //建立数据库链接Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //建立Statement对象
    ResultSet rs; //建立ResultSet(结果集)对象String sqlstr="SELECT * FROM Test";while (rs.next())
    {
    session.setAttribute("dd_NO",rs.getString("DA_NO"));
    }找到记录就没有问题,找不到就出错了:javax.servlet.ServletException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态急人啊~~~
      

  8.   

    漏了,在ResultSet rs;后面补一句:rs = stmt.executeQuery(sqlstr); //执行SQL语句怎么解决呀?
      

  9.   

    呵呵,还是错了,应该是String sqlstr="SELECT * FROM Test";后面才对rs = stmt.executeQuery(sqlstr); //执行SQL语句
      

  10.   

    while (rs!=null&&rs.next())
    {
    session.setAttribute("dd_NO",rs.getString("DA_NO"));
    }
    这样可以不?
      

  11.   

    ResultSet 你是怎么定义的啊?
      

  12.   

    ResultSet rs; //建立ResultSet(结果集)对象
      

  13.   

    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 这一句不对吧
    Statement stmt = con.createStatement(TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      

  14.   

    打错了
    Statement stmt = con.createStatement(TYPE_SCROLL_INSENSITIVE,CONCUR_READ_ONLY);
      

  15.   

    呵呵,问题终于解决了,问题的关键就出在:Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //这一句其中的参数应该省掉,改为:
    Statement stmt = con.createStatement();   //PASS!!谢谢大家!!!!谢谢大家!!!!