if (operatorid.equals(userid) && password.equals(pwd) && userid!="" && pwd!="")
->
if (operatorid.equals(userid) && password.equals(pwd) && userid.equals("") && pwd.equals(""))userid!=""  is wrong

解决方案 »

  1.   

    你首先最好trim()一下在比较,再看看大小写的情况你这不是全部代码吧,operatorid在哪儿
      

  2.   

    sorry
    userid.equals("") 
    ->
    (!userid.equals(""))
      

  3.   


    比较空是这样
    userid.trim().equals("")
      

  4.   

    但是我一上个月做另外一个的时候也是用这个的啊,而且都没有问题,我测试了好多次都运行正确啊!请问这又是什么原因呢!
    我在发这个问题之前也试过用下面的判断:
    if (password.equals(pwd))
    {
        return true;
    }
    可它一样是返回false啊!就算没有那两空值的判断,它执行if的时候也是判断为不等的啊
      

  5.   

    password是不是一串空格呢。。
    这样输出时你又无法分辨。。
      

  6.   

    我在jbuilder下遇到过这种情况,不过后来又莫名其妙好了!好像是断点不能设置在if外面,你可以试试,也可以不要设置断点,还不行的话换个版本试试!good luck!
      

  7.   

    老兄,我的是一个Bean来的啊,怎么设断点啊!
    我说的相等是:四个输出都有内容,而且没有空格,也不是大小写的问题,可就是不知道在哪出了问题啊?
      

  8.   

    bean不可以设断点的吗?我好像可以的!不懂!
      

  9.   

    把你的方法改成下面的吧,这样会简单很多:
    public boolean isValiduser()
      {
        try
        {
            ResultSet result=db.Query("SELECT * FROM [operator] WHERE (operator_id = '"+operatorid+"' and password='"+password+"')");
            if (result!=null)
            {
                 return true;
            }
            else
            {
                return false;
            }
        }
        catch (SQLException be)
        {
            System.err.println("LoginBean.be:"+be.getMessage());
        }
      }