我有一个应该删除sqlite数据库中记录的函数。但它不是删除,可能是什么错误?
public boolean deleteLoc(String id) {
boolean deleteSuccessful = false;
try {
SQLiteDatabase db = this.getWritableDatabase();
deleteSuccessful = db.delete(TABLE_NAME, "id =" + id, null) > 0;
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return deleteSuccessful;
}
它总是返回false。
答案 0 :(得分:1)
如果id
的类型为string
,那么您应该使用:
deleteSuccessful = db.delete(TABLE_NAME, "id ='" + id + "'", null) > 0;
修改强>
如果id
的类型为Numeric
,则应将其转换为long
:
long longId = Long.parseLong(id);
deleteSuccessful = db.delete(TABLE_NAME, "id =" + longId, null) > 0;
答案 1 :(得分:1)
试试这个:
deleteSuccessful = db.delete(TABLE_NAME, "id ='" + id + "'", null) > 0;
否则表格中没有相应的记录.......您是否在表格中检查了您要删除的条目?