簡體   English   中英

記錄不會從SQLite數據庫中刪除

[英]Record Won't Delete from SQLite Database

我目前正在進行A Level計算機科學控制評估,在Android Studio,Java和XML中制作一個Scout Manager應用程序,我以前都沒用過。 我現在正處於最后階段,但我遇到了一個我似乎無法解決的錯誤。

我正在嘗試從事件表中刪除會話記錄。 這在以前工作得很好,但是出於某種原因,盡管代碼沒有變化(我記得,無論如何),它不再是。

以下是“編輯事件”活動中的代碼:

//Deletes the event from the database
    public void deleteEvent(View view)
    {
        boolean result=DatabaseHandler.deleteSession(sessionid);
        if (result==true)
        {
            Toast.makeText(
                    context,
                    "Event Deleted",
                    Toast.LENGTH_SHORT
            ).show();
            backToProgramme(view);
        }
        else
        {
            Toast.makeText(
                    context,
                    "Error - please try again",
                    Toast.LENGTH_SHORT
            ).show();
        }
    }

這是來自databaseHandler的代碼:

//Deleting a session in the events table
    public boolean deleteSession(int id)
    {
        boolean result = false;
        String query = "SELECT * FROM " + TABLE_EVENTS + " WHERE " + COLUMN_SEID + " = '"
                + String.valueOf(id) + "'";
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(query, null);
        sessionDetails session = new sessionDetails();
        if (cursor.moveToFirst())
        {
            session.setSessionID(Integer.parseInt(cursor.getString(0)));
            db.delete (TABLE_EVENTS, COLUMN_SCID + "=?", new String[]{String.valueOf(
                    session.getSessionID())});
            cursor.close();
            result = true;
        }
        return result;
    }

我無法解釋為什么這不是刪除記錄。

你在這做的是:
搜索表TABLE_EVENTS以查找具有COLUMN_SEID = id的行,如果找到,則獲取列COLUMN_SCID的值並刪除COLUMN_SCID等於該值的行!
為什么這一切?
你不能只刪除COLUMN_SEID = id的行嗎?
我相信你的代碼應該是這樣編寫的:

public boolean deleteSession(int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    return db.delete(TABLE_EVENTS, COLUMN_SEID + " = ?", new String[]{String.valueOf(id)}) > 0;
}

delete()方法返回已刪除行的數量,因此如果沒有刪除行, deleteSession()將返回false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM