web-dev-qa-db-fra.com

Comment supprimer une ligne d'une table dans SQLite android?

J'ai fait ça et ça ne marche pas. Je reçois force close.

public boolean favoriteDelete(int id) {
    return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
16
sai

Vous pouvez simplement utiliser la requête SQL pour supprimer.

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

Dans votre requête, vous passez null à la place de whereArgs

db.delete(table, whereClause, whereArgs)

Ça devrait être comme ça

db.delete(TBL_NAME, "Google=?", new String[]{Integer.toString(id)});
39
Lalit Poptani

Essaye ça

public boolean favoriteDelete(int id) {
    return db.delete(DATABASE_TABLE, KEY_ROWID +  "=" + id, null) > 0;
}
6
diya
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)});
  • les valeurs de condition where doivent être données sous forme de tableau de chaînes
3
Arul T

Il vaut mieux utiliser des espaces réservés que de manipuler des chaînes. Ok pour les int, mais dès que vous mettez une chaîne, les choses vont mal se passer.

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

    SQLiteDatabase db = mDbHelper.getWritableDatabase();
    db.delete(TABLE_NAME_DEVICES, where, whereArgs);
0
Timmmm

ajoutez des guillemets simples dans votre clause where ...

 return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0;
0
AAnkit