SQLite在重新启动应用程序后丢失数据(插入,更新)

时间:2015-02-27 20:39:39

标签: c# sqlite windows-phone-8

当我更新我的数据时:

using (SQLiteConnection conn = new SQLiteConnection(DB_PATH))
            {
                var query = conn.Table<kursy>().Where(k => k.kurs == kursStaryRubel).SingleOrDefault();
                query.data = kursAktualnyData;
                query.kurs = kursAktualnyRubel;

                conn.Update(query);
            }

一切正常。数据已更新。但是当我再次关闭并打开我的应用程序时,这些数据具有旧值 - 它没有更新。我正在使用相同的数据库,它没有重新创建。为什么会这样?

我的DB_PATH:

public static string DB_PATH = Path.Combine(ApplicationData.Current.LocalFolder.Path, "test.db");

我的数据库文件将属性Copy to Output Directory设置为Copy if Newer

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

无意识地数据库在开始时被替换。问题是我在Storage而不是IsolatedStorage中创建了数据库。我不知道我是否理解这一点,但是当它在Storage中创建时,数据库是在应用程序的内存中创建的,这就是我关闭应用程序时数据库到期的原因。但是当我在IsolatedStorage中创建数据库时,它永久地放在手机内存中。然后,即使我关闭了应用程序,数据库仍然存在,因为它是在手机内存中创建的,而不是在应用程序内存中。