Android Sqlite3数据库:SQLite中的游标没有返回null?

时间:2012-06-04 20:29:01

标签: android sqlite

有人可以告诉我为什么我只获得true结果,即使我的数据库中不存在该记录吗?

为了澄清,在我的表格中,_id是电话号码。

这是我的代码:

public boolean checkifExists(String number){
    String[] columns = new String[]{"_id"};
    String[] wehreargs = new String[]{number};
    this.openDataBase();
    if (myDataBase.query("mytable", columns, "_id=?", wehreargs, null, null, null)==null){
        myDataBase.query("mytable", columns, "_id=?", wehreargs, null, null, null).close();
        this.close();
    return false;
    } else {
        myDataBase.query("mytable", columns, "_id=?", wehreargs, null, null, null).close();
        this.close();
        return true;
    }
}

2 个答案:

答案 0 :(得分:1)

query返回Cursor,它始终为非空。您必须阅读Cursor才能获得query

的结果

答案 1 :(得分:0)

正如@DougCurrie所提到的:Query只返回非Null游标:修改了你的代码:

public boolean checkifExists(String number){
    String[] columns = new String[]{"_id"};
    String[] wehreargs = new String[]{number};
    this.openDataBase();
    Cursor c = myDataBase.query("mytable", columns, "_id=?", wehreargs, null, null, null)
    boolean hasEntry = c.moveToFirst()
    c.close();
    this.close()
    return hasEntry;
}