【发布时间】:2023-03-03 01:22:01
【问题描述】:
我正在尝试向 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 调用返回一个游标(非空),但它是空的。
我通过 ADB 验证记录已插入。我什至通过 ADB shell 通过 sqlite3 运行了这个精确的查询,并且该项目已按预期插入并返回。我还尝试在另一个 rawQuery 调用中删除选择并检索项目,但这也不起作用。
有人知道会发生什么吗? 我正在通过一个单元测试运行此代码,该单元测试在每次测试运行期间创建和销毁数据库。
【问题讨论】:
标签: android select sqlite insert