簡體   English   中英

Xamarin.Forms Android應用程序SQLite數據消失

[英]Xamarin.Forms Android app SQLite data disappears

我正在使用C#為Android編寫Xamarin.Forms應用。 我在以下位置設置了Sqlite dB:System.Environment.SpecialFolder.Personal

當應用程序部署在設備上時,我可以添加數據,然后檢索它。 但是,當我第二天檢查應用程序時(離線,無需從PC進行調試),所有的dB數據都消失了。

這是否意味着一段時間后dB文件消失了?

來自數據庫的數據不應消失。 您確定數據庫初始化代碼可以嗎? 也許每次您啟動應用程序時,數據是否都已恢復到某種啟動狀態?

sqlite db中數據神秘消失的原因可能有多種。

確保您的db文件存在,也許您可​​以在某個地方實現一個小的調試按鈕,這將引發警報,告訴您該文件是否存在。

但是,使用System.Environment.SpecialFolder.Personal應該不是原因,我也將該文件夾用於我的應用程序。

第二,您是否積極進行交易? 特別是當您的應用程序后台運行時,我建議調用Commit()以確保將每個掛起的事務都寫入數據庫,因為您不知道應用程序后台運行時何時垃圾回收器出現。

如果使用多個線程,請確保以支持多線程環境的模式打開數據庫。 如果您使用簡單的方法打開sqlite數據庫

SQLiteConnection conn = new SQLite.SQLiteConnection(path);

數據庫將打開單線程。 嘗試以下方法:

SQLiteConnection conn = new SQLite.SQLiteConnection(path, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.NoMutex);

如果那沒有幫助,請對您的代碼有更多的了解(如何打開數據庫,如何插入/更新數據等)。

暫無
暫無

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

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