-2

我的 if 下面出于某种原因检查第一个但不是第二个条件。

第一个是根据数据库检查用户/密码,第二个是硬代码用户和密码。

当我输入硬编码的用户/密码时,它不会让我通过,只能使用 db 用户/密码。

知道有什么问题吗?

if ((userTxt == userDB && passwdTxt == passwdDB) ||
    (userTxt == "user" && passwdTxt == "test"))
{
    switch (frmMdiMain.loginPageText)
    {
        case "exit":
            mainPage.Hide();
            Application.Exit();
            break;
        case "internal":
            mdiInternalUse internUseForm = new mdiInternalUse();
            internUseForm.Show();
            this.Close();
            break;
        default:
            break;
    }
}
4

1 回答 1

0

如果没有您使用的语言,很难回答,但我认为问题在于 and 的值与userTxt与 and表示passwdTxt的对象不同的对象进行比较"user""test"

例如,在 C/C++ 中 ofuserTxt是一个指向 的指针char,它将具有与“用户”不同的地址。

在java中,String持有 和 值的对象userTxt"user"可以不同。

您将需要对字符串进行适当的比较(例如strcmp(),在 C 中,sts::string在 C++ 中使用userTxt.compare("user"),在 java 中使用)

于 2012-05-19T17:05:33.543 回答