Zrobiłem to i to nie działa. Otrzymuję force close
.Jak usunąć wiersz z tabeli w Androidzie SQLite?
public boolean favoriteDelete(int id) {
return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
Zrobiłem to i to nie działa. Otrzymuję force close
.Jak usunąć wiersz z tabeli w Androidzie SQLite?
public boolean favoriteDelete(int id) {
return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
można po prostu użyć kwerendy SQL usunąć.
public void delete(String id) {
db.execSQL("delete from "+TBL_NAME+" where Google='"+id+"'");
}
w zapytaniu są przechodzącą NULL w miejsce whereArgs
db.delete(table, whereClause, whereArgs)
Powinno być jak ten
db.delete(TBL_NAME, "Google=?", new String[]{Integer.toString(id)});
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)});
Spróbuj
public boolean favoriteDelete(int id) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + id, null) > 0;
}
mogę wiedzieć, jaka jest różnica w swojej odpowiedzi i pytanie od użytkownika? –
dodać apostrofów w twoja klauzula where ...
return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0;
Lepiej używać symboli zastępczych niż manipulacji ciągami. Ok dla int, ale jak tylko wpiszesz tam string, coś pójdzie nie tak.
String where = COLUMN_NAME_ADDRESS + " = ?";
String[] whereArgs = { String.valueOf(address) };
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.delete(TABLE_NAME_DEVICES, where, whereArgs);
+1 zgodzić z wprowadzeniem 'whereClause' jak Google ** = ** –