使用sqllite登录失败

时间:2019-01-21 11:40:36

标签: java android sqlite

我是android开发的新手。因此,我试图使用Sqlite作为数据库来实现注册和登录页面。但是写完数据库代码和登录活动代码之后。登录后,它不是执行登录后的其他活动,而是执行else代码。 看看下面的代码

数据库代码

//Check if user exist from Database
public boolean checkUser(String email, String password) {

    //array of columns to fetch
    String[] columns = {Constant.USER_ID};
    SQLiteDatabase db = this.getReadableDatabase();

    //selection Criteria
    String selection = Constant.USER_EMAIL + " =?" + " AND " + Constant.USER_PASSWORD + " =?";

    //selection argument
    String[] selectionArgs = {email, password};

    //Query user table with conditions
    Cursor cursor = db.query(Constant.USER_TABLE_NAME, columns, selection, selectionArgs, null,null,null);

    int cursorCount = cursor.getCount();
    cursor.close();
    db.close();

    if (cursorCount > 0) {
        return true;
    }

    return false;
}

登录活动代码

private void proceedToLogin(String email, String password)
{
    boolean login = myDb.checkUser(email, password);
    if (login) {
        proceedToDashBoard();
    }
    else {
        Toast.makeText(this, "Failed to login", Toast.LENGTH_SHORT).show();
    }
}

1 个答案:

答案 0 :(得分:0)

数据库中可能不存在您要认证的用户,或者您编写的将用户插入数据库的方法不正确。您可以通过在将凭据发送到db的部分放置断点来进行调试,以检查是否为空。

此外,您可以通过以下方式访问SQLite数据库并检查是否存在任何数据:设备资源管理器(android studio的右下角)> data> data> com.yourpackage.name> databases,您将在其中找到您的数据库。确保USB调试处于活动状态,并且您已连接手机。

下载数据库并在线使用sqlite browser来查看其内容。 您还可以查看this文章以进行注册并使用sqlite登录。