我已经完成了这个并且它无法正常工作。我得到了force close
。
public boolean favoriteDelete(int id) {
return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
答案 0 :(得分:39)
您只需使用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)});
答案 1 :(得分:6)
试试这个
public boolean favoriteDelete(int id) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + id, null) > 0;
}
答案 2 :(得分:3)
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)});
答案 3 :(得分:0)
在where子句中添加单引号...
return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0;
答案 4 :(得分:0)
使用占位符比使用字符串操作更好。对于int来说没关系,但只要你把一个字符串放在那里就会出错。
String where = COLUMN_NAME_ADDRESS + " = ?";
String[] whereArgs = { String.valueOf(address) };
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.delete(TABLE_NAME_DEVICES, where, whereArgs);