我有一个小函数来检查我的sqlite数据库中是否已存在记录。数据库中的数据应该与查询匹配,我已经通过打开数据库验证了这一点。但是我得到一个空的结果。
下面是函数,它接受一个参数并将其用作搜索参数。我还验证了参数是否正确。
ExoPlayer
答案 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;
}