Подтвердить что ты не робот

Как удалить строку из таблицы в SQLite-андроиде?

Я сделал это, и он не работает. Я получаю force close.

public boolean favoriteDelete(int id) {
    return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
4b9b3361

Ответ 1

Вы можете просто использовать SQL-запрос для удаления.

public void delete(String id) {
        db.execSQL("delete from "+TBL_NAME+" where Google='"+id+"'");
    }

В вашем запросе вы передаете null вместо whereArgs

db.delete(table, whereClause, whereArgs)

Это должно быть как

db.delete(TBL_NAME, "Google=?", new String[]{Integer.toString(id)});

Ответ 2

Попробуйте это

public boolean favoriteDelete(int id) {
    return db.delete(DATABASE_TABLE, KEY_ROWID +  "=" + id, null) > 0;
}

Ответ 3

database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)});
  • где значения условия должны указываться как строковый массив

Ответ 4

добавьте одинарные кавычки в предложение where...

 return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0;

Ответ 5

Лучше использовать заполнители, чем манипуляции с строками. Ok для int, но как только вы введете строку, все пойдет не так.

    String where = COLUMN_NAME_ADDRESS + " = ?";
    String[] whereArgs = { String.valueOf(address) };

    SQLiteDatabase db = mDbHelper.getWritableDatabase();
    db.delete(TABLE_NAME_DEVICES, where, whereArgs);