2013-11-18 2 views
-3

Я пытаюсь сделать простую операцию входа, используя электронную почту и пароль из моей базы данных Mysql.Сравнение строк в Java?

Теперь я установил значение электронной почты на «e» и пароль на «e1» (чтобы проверить его). И я импортировать его в мое приложение в строку, я проверить, если пароль и адрес электронной почты истинны:

res = st.executeQuery("SELECT * FROM Users WHERE Email = '"+emailVar+"' AND Password = '"+pswdVar+"' "); 
     while (res.next()) { 
       String pswdDb = res.getString("Password"); 
       String emailDb = res.getString("Email"); 
       if (emailVar == emailDb && pswdVar == pswdDb) 
       { 

        Intent I = new Intent (this, MainActivity.class); 
        startActivity(I); 
       } 

но если оператор всегда возвращает ложь.

После отладки я увидел, что значение из базы данных и входное значение равны.

Как это исправить?

+2

Не сравнивайте строки, используя '=='. Используйте метод '.equals (..)'. Ваш if-statement затем становится 'if (emailVar.equals (emailDb) && pswdVar.equals (pswdDb))' – Kon

+0

вы получаете значения из db? вы проверили logcat, если значения равны? – jayeshkv

ответ

0

Строки в Java сравниваются с помощью метода Equals, а не с оператором ==.

if (emailVar.equals(emailDb) && pswdVar.equals(pswdDb)){ 

       Intent I = new Intent (this, MainActivity.class); 
       startActivity(I); 
    } 
0

В Java и Android == используется для сравнения двух объектов. Для сравнения двух переменных необходимо использовать .equals() метод следующим образом,

if (emailVar.equals(emailDb) && pswdVar.equals(pswdDb)) 
{ 
    Intent I = new Intent (this, MainActivity.class); 
    startActivity(I); 
} 
Смежные вопросы