Использование страницы входа - PullRequest
0 голосов
/ 27 декабря 2018

как мне решить проблему

Не удалось войти в систему, просто выдать исключение (индекс -1 запрошен с размером 0)

String sql="select * from beta where uname='"+unam+"' and pwd='"+pwd+"'";
cur=db.rawQuery(sql,null);
if(cur.moveToFirst()) {
    String nm = cur.getString(cur.getColumnIndex("uname"));
    String pd = cur.getString(cur.getColumnIndex("pwd"));
    if ((nm.equals(unam)) && (pd.equals(pwd))) {
        Toast.makeText(Login.this, "Login Succesfully", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(Login.this, "Login NOT Succesfully", Toast.LENGTH_LONG).show();
    }
}

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Пожалуйста, измените свой код на это:

String sql="select * from beta where uname='"+unam+"' and pwd='"+pwd+"'";
cur=db.rawQuery(sql,null);
if(cur != null && cur.getCount() > 0 && cur.moveToFirst()) {
    String nm = cur.getString(cur.getColumnIndex("uname"));
    String pd = cur.getString(cur.getColumnIndex("pwd"));
    if ((nm.equals(unam)) && (pd.equals(pwd))) {
        Toast.makeText(Login.this, "Login Succesfully", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(Login.this, "Login NOT Succesfully", Toast.LENGTH_LONG).show();
}
0 голосов
/ 27 декабря 2018

Здесь вы пытаетесь получить запись из базы данных ввода имени пользователя и пароля.Так что, если вы получите эту запись, значит, вы вошли в систему успешно.

Нет необходимости получать имя пользователя и пароль от курсора.Вам просто нужно проверить размер курсора, если вы получите одну запись, чем вы можете сказать, что пользователь вошел в систему.

Я предполагаю, что имя пользователя уникально в базе данных.

String sql="select * from beta where uname='"+unam+"' and pwd='"+pwd+"'";
cur=db.rawQuery(sql,null);
if(cur != null && cur.getCount() > 0) {
        Toast.makeText(Login.this, "Login Succesfully", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(Login.this, "Login NOT Succesfully", Toast.LENGTH_LONG).show();
}
...