2012-01-03 9 views

Odpowiedz

37

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)}); 
+1

+1 zgodzić z wprowadzeniem 'whereClause' jak Google ** = ** –

2
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)}); 
  • where wartości warunek powinien być podany jako tablicy ciągów
6

Spróbuj

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

mogę wiedzieć, jaka jest różnica w swojej odpowiedzi i pytanie od użytkownika? –

0

dodać apostrofów w twoja klauzula where ...

return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0; 
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); 
Powiązane problemy