我有一个使用数据库浏览器创建的SQLite数据库,将其放在资产文件中,并使用SQLiteAssetHelper进行访问。为什么如果我使用数据库浏览器更新任何记录,但在我的应用程序中却没有更改?!
另外,如果我在应用中执行插入查询,则新记录不会出现在数据库浏览器中。
答案 0 :(得分:0)
如果数据库文件已存在于目标位置,则SQLiteAssetHelper
不会从资产中复制数据库。
如果这是数据库中的开发时更改,则只需卸载应用程序即可删除数据库的旧版本。
如果对应用程序的发行版进行了更改,则需要实施数据库版本控制和更新脚本,如readme中所述。
此外,如果我在应用中执行插入查询,则新记录不会出现在数据库浏览器中。
您不是要插入相同的数据库,而是要复制一个数据库。您需要从设备中提取数据库,然后从那里进行检查。看到 例如android adb, retrieve database using run-as
答案 1 :(得分:0)
您正在处理3个不同的数据库:
使用数据库浏览器创建的数据库,存储在您计算机的文件夹中。
assets
文件夹中的数据库,它是您使用数据库浏览器创建的数据库的副本。
模拟器/设备中第一次运行该应用程序时创建的数据库。
最后一个数据库最初是您在assets
文件夹中的数据库的副本。
在情况1中对数据库进行更改时,这些更改不会反映到assets
文件夹中的数据库或仿真器/设备中。
如果要对仿真器/设备数据库进行这些更改,则必须:
assets
删除数据库,然后将更改后的数据库浏览器数据库复制到那里。当您对仿真器/设备进行更改并且想要使用数据库浏览器检查数据库时: