【发布时间】:2012-01-03 05:27:15
【问题描述】:
我已经这样做了,但它不起作用。我收到force close。
public boolean favoriteDelete(int id) {
return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
【问题讨论】:
我已经这样做了,但它不起作用。我收到force close。
public boolean favoriteDelete(int id) {
return database.delete("FavoriteData", "Google" + "=" + id, null) > 0;
}
【问题讨论】:
你可以简单地使用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)});
【讨论】:
试试这个
public boolean favoriteDelete(int id) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + id, null) > 0;
}
【讨论】:
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)});
【讨论】:
使用占位符比使用字符串操作更好。对 int 来说没问题,但是一旦你把一个字符串放在那里,事情就会出错。
String where = COLUMN_NAME_ADDRESS + " = ?";
String[] whereArgs = { String.valueOf(address) };
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.delete(TABLE_NAME_DEVICES, where, whereArgs);
【讨论】:
在 where 子句中添加单引号...
return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0;
【讨论】: