检查SQLite Android中是否存在数据

Dim*_*Dim 1 sqlite android

我使用此函数从SQlite获取特定数据:

SearchRes getSresultByName(String name) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_WIKIRES, new String[] { KEY_ID,
            KEY_SNAME, KEY_SJSON }, KEY_SNAME + "=?",
            new String[] { name }, null, null, null, null);

    if (cursor != null)
        cursor.moveToFirst();

    SearchRes searchres = new SearchRes(Integer.parseInt(cursor.getString(0)),cursor.getString(1), cursor.getString(2));

    return searchres;
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,我需要创建类似的函数来测试表中是否存在值,所以我尝试了这个:

boolean checkIfExist(String name) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_WIKIRES, new String[] { KEY_ID,
            KEY_SNAME, KEY_SJSON }, KEY_SNAME + "=?",
            new String[] { name }, null, null, null, null);


    if (cursor == null)
        return false;

    else
        return true;

}
Run Code Online (Sandbox Code Playgroud)

但我总是得到正确的.你能帮我搞清楚是什么问题吗?

tyc*_*czj 6

你不应该检查游标是否为null你应该检查游标中是否有任何东西

if(cursor.moveToFirst()){
    return true
}else{
    return false;
}
Run Code Online (Sandbox Code Playgroud)