我有一个使用 DB Browser 创建的 SQLite 数据库,我将其放入 Assets 文件中,然后使用 SQLiteAssetHelper 来访问它。为什么如果我使用数据库浏览器更新任何记录,它在我的应用程序中不会改变?!
另外,如果我在应用程序中执行插入查询,新记录不会出现在数据库浏览器中。
最佳答案
您正在处理 3 个不同的数据库:
您使用数据库浏览器创建的数据库存储在您电脑的文件夹中。
数据库位于
assets
文件夹,它是您使用 DB Browser 创建的数据库的副本您第一次运行应用程序时在模拟器/设备中创建的数据库。
最后一个数据库最初是您在assets
中拥有的数据库的副本。文件夹。
当您在情况 1 中对数据库进行更改时,这些更改不会反射(reflect)到 assets
中的数据库中。文件夹或您的模拟器/设备中。
如果您希望对模拟器/设备数据库进行这些更改,则必须:
- 从
assets
删除数据库并将更改后的 DB Browser 数据库复制到此处。 - 从模拟器/设备中卸载应用,以便删除数据库。
- 再次运行应用程序,以便在模拟器/设备中重新创建数据库。
当您对模拟器/设备进行更改并希望使用 DB 浏览器检查数据库时:
- 在 Android Studio 中选择查看 > 工具窗口 > 设备文件资源管理器
- 在设备文件资源管理器窗口中,转到data/data/yourpackagename/databases文件夹,右键单击您的数据库,然后单击另存为...强>。选择您想要保存数据库的文件夹即可完成。
现在您可以使用DB Browser打开数据库。
关于android - 如果我通过数据库浏览器更新数据库,它在我的应用程序中不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707310/