我的sqlite游标返回查询的空结果

时间:2016-09-10 11:42:43

标签: android database sqlite

我有一个小函数来检查我的sqlite数据库中是否已存在记录。数据库中的数据应该与查询匹配,我已经通过打开数据库验证了这一点。但是我得到一个空的结果。

下面是函数,它接受一个参数并将其用作搜索参数。我还验证了参数是否正确。

ExoPlayer

2 个答案:

答案 0 :(得分:1)

rawQuery 方法中传递参数的正确方法。

db.rawQuery("SELECT * FROM parents WHERE email = ?",new String[]{email});

答案 1 :(得分:1)

您正在检查游标对象res是否为空。这永远不会发生; rawQuery() 始终返回游标对象。

您必须检查光标是否为空,即光标是否实际包含任何行。要执行此操作,请调用moveToFirst()之类的方法并检查其是否成功。

或者甚至更好,使用一个为您处理光标的helper function

public boolean checkParent(String email)
{
    SQLiteDatabase db = this.getReadableDatabase();
    long count = DatabaseUtils.queryNumEntries(db,
            "parents", "email = ?", new String[]{ email });
    return count > 0;
}