Не удается проверить данные для входа в систему в Android SQLite

Вот код, который я использовал, чтобы проверить, является ли пользователь уже частью базы данных или нет:

  Boolean checkEmailPass = db.emailpasswd(email, pass);
            if (checkEmailPass== false){
                Toast.makeText(getApplicationContext(),"Email or password incorrect", Toast
                        .LENGTH_SHORT).show();
            }else{
                Intent i = new Intent(LoginActivity.this, HomeActivity.class);
                startActivity(i);
                finish();

                Toast.makeText(getApplicationContext(),"Successful Login",Toast.LENGTH_SHORT).show();
            }

Ниже приведена часть кода из класса datahelper. Имя таблицы - user.

 public boolean emailpasswd(String email, String password){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery("Select * from user where email=? and password = ?", new
            String[]{email, password});
    if (cursor.getCount()>0){
        return false;
    }else {
        return true;
    }
  }
}

Я создал приложение с помощью базы данных SQLite. Все приложение работает нормально, но всякий раз, когда я пытаюсь войти в систему, приложение не может проверить электронную почту и пароль из базы данных, и поэтому независимо от того, что я ввожу, я получаю тост за успешный вход. Пожалуйста, проверьте код и проведите меня.

Пожалуйста, не пытайтесь опубликовать изображение кода, вы, скорее всего, получите за это несколько голосов против. Отредактируйте свой вопрос, а затем скопируйте и вставьте код как MVCE Минимальный, полный, проверяемый пример. Размещение фактических кодов упрощает проверку кода другими и, таким образом, упрощает предоставление ответов. Многие просто проигнорируют вопрос, если код вставлен как изображение, другие могут проголосовать против, другие могут проголосовать за закрытие вопроса.

MikeT 11.07.2018 05:35

Что вы имеете в виду под "Я создал с помощью ..."? Например, отсутствует слово? Ответьте, отредактировав свой вопрос, а не здесь, в комментариях.

Peter Mortensen 11.07.2018 09:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
247
1

Ответы 1

Ваш код:

if (cursor.getCount()>0){
    return false;
}else {
    return true;
}

Итак, если пользователь существует, вы вернете false !!! Измените его другим способом:

if (cursor.getCount()>0){
    return true;
}else {
    return false;
}

а в конце поставить db.close().

Привет, спасибо за предложение, но я все еще застрял с той лишь разницей, что теперь я получаю тост с неверным паролем и адресом электронной почты вместо кода успешного входа в систему. п

Divyansh Tripathi 11.07.2018 18:05

Другие вопросы по теме