尝试从SQLiteDatabase Android中检索电子邮件ID

时间:2015-07-02 19:02:03

标签: android android-sqlite

我有一个注册活动,其中用户提供了电子邮件ID,我在SQLiteDatabase中保存了他们的电子邮件ID。在保存电子邮件ID之前,我正在检查数据库中是否已存在电子邮件ID以下是我用来检查的代码。但这里的问题是它总是返回false意味着显示已经存在的电子邮件ID。请帮助。

public boolean readUser(String email){
        sqLiteDatabase = userDatabaseUtility.getReadableDatabase();
        String selectQuery = "SELECT  * FROM " + TABLE_NAME + " WHERE "
                + COLUMN_EMAIL + " = '" + email + "'";
        Log.i("LOG", selectQuery);

        Cursor cursor = sqLiteDatabase.rawQuery(selectQuery, null);

        if(cursor != null){
            // email already exist
            cursor.close();
            return false;
        } else {
            return true;
        }
    }`

3 个答案:

答案 0 :(得分:1)

您的光标可能为空但不为空。而不是

if(cursor != null) {
      // email already exist
      cursor.close();
      return false;
} else {
      return true;
}

你应该有

return cursor != null && cursor.getCount() > 0;

如果您有一个包含该电子邮件的条目,则会返回true,否则会返回false

答案 1 :(得分:1)

空光标不是null。您应该检查是否cursor.getCount() > 0

答案 2 :(得分:0)

由于您进行了分配,因此光标不会为空。您必须检查cursor.getCount()是否大于0,这意味着光标找到了至少一个与您的电子邮件地址匹配的内容。

   if(cursor.getCount()>0){
        // email already exist 
        cursor.close();
        return false; 
    } else { 
        return true; 
    }