簡體   English   中英

Android SQLite查詢插入后不返回數據

[英]Android SQLite query not returning data after insert

我試圖將數據插入到SQLite數據庫表中,然后在同一調用中立即從select中返回結果,但是沒有返回數據。

這是SQL語句:

INSERT INTO Items (Name, DefaultExpirationIntervalId) VALUES ('Item', -1);
SELECT ItemId as '_id', Name, DefaultExpirationIntervalId FROM Items WHERE Name = 'Item';

這是進行SQL調用的代碼:

        Boolean isReadOnly = getSQLiteDatabase().isReadOnly();

        // Make sure we can add data to the database
        if (!isReadOnly)
        {
            // Add the item to the database and then use the result to create a new item
            Cursor cursor = getSQLiteDatabase().rawQuery(query, null);

            if (null != cursor)
            {
                cursor.moveToFirst();

                if (!cursor.isAfterLast())
                    item = new Item(cursor);
            }
        }

rawQuery調用返回一個游標(不為null),但它為空。

我通過亞行驗證是否已插入記錄。 我什至通過ADB Shell在sqlite3中運行了這個確切的查詢,並且該項目已按預期插入並返回。 我也嘗試過刪除選擇並在另一個rawQuery調用中檢索該項目,但這也不起作用。

有人知道會發生什么嗎? 我正在通過單元測試運行此代碼,該單元測試在每次測試運行期間都會創建和銷毀數據庫。

rawQuery僅用於SELECT語句。
對於INSERT,DELETE和UPDATE ,必須改用execSQL

因此,首先,您必須使用execSQL進行INSERT,然后對您的SELECT使用rawQuery。

萬一你問為什么...
SELECT是一個查詢,而INSERT,DELETE和UPDATE是命令。

暫無
暫無

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

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