删除命令不在SQLite数据库上

时间:2017-01-06 09:35:09

标签: android sqlite android-sqlite

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();}}
          }

4 个答案:

答案 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) });
}