首页 > 解决方案 > 如果用户已经存在,如何检查 SQLite 数据库?

问题描述

我是 Android 编程的新手。我有一个带有电子邮件和密码的 SQLite 数据库,我想在新用户创建新帐户时检查用户是否已经存在。谁能帮我 ?这是我检查用户是否存在的方法。

            usersAcc.setEmailUser(e);
            usersAcc.setPasswordUser(a);
            String query = "SELECT email FROM Emails WHERE email='"+ usersAcc.getEmailUser() +"';";
            Cursor cursor = helper.sqlite.rawQuery(query, null);
            cursor.moveToFirst();
            if(cursor.moveToNext()){
                helper.intput(usersAcc);
                Toast toast = Toast.makeText(RegistrationForm.this, "OK!", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.BOTTOM, 0,0);
                toast.show();
            }else{
                Toast toast = Toast.makeText(RegistrationForm.this, "Fail!", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.BOTTOM, 0,0);
                toast.show();
            }

标签: androidsqlite

解决方案


您没有正确使用光标移动,因为在移动到第一个之后,您移动到不存在的下一个,使用这个:

usersAcc.setEmailUser(e);
usersAcc.setPasswordUser(a);
String query = "SELECT email FROM Emails WHERE email='"+ usersAcc.getEmailUser() +"';";
Cursor cursor = helper.sqlite.rawQuery(query, null);

if(cursor.moveToFirst()){
    helper.intput(usersAcc);
    Toast toast = Toast.makeText(RegistrationForm.this, "OK!", Toast.LENGTH_LONG);
    toast.setGravity(Gravity.BOTTOM, 0,0);
    toast.show();
}else{
    Toast toast = Toast.makeText(RegistrationForm.this, "Fail!", Toast.LENGTH_LONG);
    toast.setGravity(Gravity.BOTTOM, 0,0);
    toast.show();
}

推荐阅读