public void deleteEntity(int id ) {
db = this.getWritableDatabase();
try
{
db.beginTransaction();
/*String s = "DELETE FROM entity_save WHERE _id=" + id;
db.execSQL(s);*/
int i=db.delete("entity_save", "save_id = ?", new String[]{ String.valueOf(id) });
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
db.endTransaction();
db.close();}}
}
答案 0 :(得分:2)
您需要致电setTransactionSuccessful()
实际提交,而不是在endTransaction()
上回滚您的更改。
答案 1 :(得分:-1)
尝试此操作,在SQLite类中创建此函数,并在要执行删除操作的位置调用此函数。你必须只传递id才能删除。
public void deleteRow(String id) {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_NAME + " WHERE " + KEY_ID + "='" + id + "'");
}
希望它会对你有所帮助。
答案 2 :(得分:-1)
像这样改变你的方法:
public void deleteEntity(int id ) {
db = this.getWritableDatabase();
try{
db.beginTransaction();
int i=db.delete("entity_save", "save_id = " +"'"+id+"'",null });
}catch(Exception e)
{e.printStackTrace();}finally{
db.endTransaction();
db.close();}}
}
希望它能解决你的问题。
答案 3 :(得分:-1)
试试这个
public void deleteEntity(int id ) {
db = this.getWritableDatabase();
int i=db.delete("entity_save", "save_id = ?", new String[]{ String.valueOf(id) });
}