这段改一下!
ResultSet rs = null;
rs = sta.executeQuery(Sql);
if(rs!=null){
rs.next();
if (rs.wasNull())
{
Real_psw="Unknow User";
}
else
{
Real_psw=rs.getString("passwd");
}
}

解决方案 »

  1.   

    to rinehart(rinehart) 
    谢谢,我该了可是还是同样的错误
    谁还有什么好办法吗?
      

  2.   

    改一下,告诉我运行结果!
    try
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con= DriverManager.getConnection("jdbc:odbc:erp","erpsys","erpsys");
    Statement sta=con.createStatement();
    ResultSet rs=sta.executeQuery(Sql);
    out.println(con.isClosed());
    out.println(rs);
    rs.close();
    con.close();
    }
    catch(Exception e)
    {
    out.println(e.getMessage());
    }
      

  3.   

    to rinehart(rinehart) 
    错误依旧
    [Microsoft][ODBC 驱动程序 管理器] 非法的游标状态 
    我希望实现的是一个用户登录界面,当用户不存在时查询结果为空,就是上边的语句。
    谢谢!
      

  4.   

    to rinehart(rinehart) 
    我按照你所说的修改了程序,得到一下结果
    false sun.jdbc.odbc.JdbcOdbcResultSet@20f443 
    这是什么?
      

  5.   

    false:表示数据库连接正常
    sun.jdbc.odbc.JdbcOdbcResultSet@20f443:查询后有结果!
      

  6.   

    改成这样试试!
    try
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con= DriverManager.getConnection("jdbc:odbc:erp","erpsys","erpsys");
    Statement sta=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ResultSet rs = null;
    rs = sta.executeQuery(Sql);
    if(rs!=null && rs.next())
    {
    Real_psw=rs.getString("passwd");
    }
    else
    {
    Real_psw="Unknow User";
    }
    rs.close();
    con.close();
    if (psw.equals(Real_psw))
    {
    user.Set_id(id);
    out.println("Login Success");
    }
    else
    {
    response.sendRedirect("Login.html");
    }
    }
    catch(Exception e)
    {
    out.println(e.getMessage());
    }
      

  7.   

    false sun.jdbc.odbc.JdbcOdbcResultSet@6b5666 是不是代表有结果集返回?
      

  8.   

    是呀
    rs = sta.executeQuery(Sql);
    if(!rs.next())
    {
      System.out.println("null");
    }
    else
    {
      System.out.println("not null");
    }
      

  9.   

    Thank you very Much
    按照你的改动已经成功了 。
    可是我还是有些不明白 (rs!=null)和 ( rs.next())难道不是等价的吗?
    为什么还要这样写?rs.wasNull()又是什么呢?
      

  10.   

    如果数据库连接问题或者sql语句有问题,rs=null,表示rs不存在!
    rs.next()表示游标向后移一条,如果已经到了末尾,怎返回false!
    rs.wasNull()是判断rs的结果是不是空(数据库),并不是判断其存在不存在!基本上就是这样!
      

  11.   

    再次感谢能问问你是干什么的吗?我以前用delphi最近开始用java,哎 问题多多
      

  12.   

    不好意思,我是不务正业的!
    起初作了一点点asp,然后由作了一点点jsp,接着作java,现在还做一点点设计,基本上什么都不精!
    简单问题还可以应付了!
    ^^