0

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;
    }
}
4

2 に答える 2

1

queryCursor常に null 以外のa を返します。Cursorの結果を取得するには、 から読み取る必要があります。query

于 2012-06-04T20:38:39.080 に答える
0

@DougCurrieが言及しているように:クエリは非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;
}
于 2012-06-04T20:55:02.840 に答える