Как удалить строку из таблицы в SQLite-андроиде?
Я сделал это, и он не работает. Я получаю force close
.
public boolean favoriteDelete(int id) {
return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
Ответы
Ответ 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);