17

I have done this and it is not working. I am getting force close.

public boolean favoriteDelete(int id) {
    return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
Pieter van Niekerk
  • 838
  • 15
  • 42
sai
  • 2,582
  • 7
  • 30
  • 45

5 Answers5

42

You can simply use sql query to delete.

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

In your query you are passing null in place of whereArgs

db.delete(table, whereClause, whereArgs)

It should be like this

db.delete(TBL_NAME, "Google=?", new String[]{Integer.toString(id)});
Lalit Poptani
  • 66,608
  • 21
  • 157
  • 241
6

Try this

public boolean favoriteDelete(int id) {
    return db.delete(DATABASE_TABLE, KEY_ROWID +  "=" + id, null) > 0;
}
diya
  • 6,728
  • 9
  • 36
  • 55
4
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)});
  • the where condition values should be given as a string array
AD14
  • 1,208
  • 19
  • 32
1

It's better to use placeholders than string manipulation. Ok for int's but as soon as you put a string in there things will go wrong.

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

SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.delete(TABLE_NAME_DEVICES, where, whereArgs);
AskNilesh
  • 63,753
  • 16
  • 113
  • 150
Timmmm
  • 78,116
  • 55
  • 321
  • 425
1

add single quotes in your where clause...

return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0;
AskNilesh
  • 63,753
  • 16
  • 113
  • 150
AAnkit
  • 26,788
  • 11
  • 57
  • 70