Как удалить строку из таблицы в 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);
Ответ 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);