当应用程序部署在设备上时,我可以添加数据然后检索它。但是,当我第二天检查应用程序时(离线,没有从 pc 调试)所有的 dB 数据都消失了。
这是否意味着 dB 文件在一段时间后消失了?
心有法竹
浏览 116回答 2
2回答
阿晨1998
sqlite db 中数据的神秘消失可能有多种原因。确保你的 db 文件存在,也许你可以在某处实现一个小的调试按钮,它会抛出一个警报,告诉你文件是否存在。但是使用 System.Environment.SpecialFolder.Personal 不应该是原因,我也将那个文件夹用于我的应用程序。其次,您是否积极提交交易?特别是当您的应用程序进入后台时,我建议调用 Commit() 以确保每个待处理的事务都写入数据库,因为您永远不知道在您的应用程序处于后台时垃圾收集器何时出现。如果您正在使用多线程,请确保以支持多线程环境的模式打开数据库。如果你用一个简单的打开你的sqlite dbSQLiteConnection conn = new SQLite.SQLiteConnection(path);数据库将打开单线程。试试这个:SQLiteConnection conn = new SQLite.SQLiteConnection(path, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.NoMutex);如果这没有帮助,请更深入地了解您的代码(您如何打开数据库,如何插入/更新数据等...)