-1

sqlite データベースのレコードを削除する関数があります。しかし、それは削除されていません。何が問題なのですか?

public boolean deleteLoc(String id) {
    boolean deleteSuccessful = false;

    try {

        SQLiteDatabase db = this.getWritableDatabase();
        deleteSuccessful = db.delete(TABLE_NAME, "id =" + id, null) > 0;

    } catch (NullPointerException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return deleteSuccessful;

}

常に false を返します。

4

2 に答える 2

1

idタイプの場合はstring、次を使用する必要があります。

deleteSuccessful = db.delete(TABLE_NAME, "id ='" + id + "'", null) > 0;

編集:

idがタイプの場合は、次のNumericように変換する必要がありますlong

long longId = Long.parseLong(id);
deleteSuccessful = db.delete(TABLE_NAME, "id =" + longId, null) > 0;
于 2013-02-05T04:18:23.367 に答える
1

これを試してください:

deleteSuccessful = db.delete(TABLE_NAME, "id ='" + id + "'", null) > 0;

それ以外の場合、テーブルに対応するレコードがありません.......削除しようとしているエントリのテーブルを確認しましたか?

于 2013-02-05T04:21:49.823 に答える