2012-05-19 57 views
-2

我如果由於某種原因在下面檢查第一條件而不是第二條件。如果聲明不檢查條件

它首先檢查用戶/ passwd對數據庫,第二個是硬編碼用戶和passowrd。

當我輸入硬編碼的用戶/ passwd時,它不讓我通過,只使用db user/passwd。

任何想法是什麼錯?

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

請相關的語言標記添加到您的問題。 –

+0

您使用的輸入法可能在最後給出包含換行符/返回字符的'userTxt'和/或'passwdTxt'嗎? – Junuxx

+0

我會建議更多的上下文。這些值的類型是什麼?中間的開關可以被刪除,因爲它與你的問題無關。 – Greg

回答

0

沒有你正在使用它是很難回答的語言,但我認爲問題是,userTxtpasswdTxt值進行比較,不同的對象比"user"代表之一,"test"

例如在userTxt的C/C++中是指向char的指針,它將具有與「user」不同的地址。

在java中,保存值userTxt"user"String對象也可以不同。

您將需要執行的字符串進行適當比較(例如用C strcmp(),在C++中使用sts::string,在Java中使用userTxt.compare("user")

+0

對不起,它是C#和變量是字符串 – ithieme1

+0

C#在這方面類似於java。使用'userTxt.Equals(「user」)' – Attila