C# SQLite在重新启动应用程序后丢失数据(插入、更新)
当我更新数据时:C# SQLite在重新启动应用程序后丢失数据(插入、更新),c#,sqlite,windows-phone-8,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;
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);
}
使用(SQLiteConnection conn=newsqliteconnection(DB_路径))
{
var query=conn.Table(),其中(k=>k.kurs==kursStaryRubel.SingleOrDefault();
query.data=kursAktualnyData;
query.kurs=kursAktualnyRubel;
连接更新(查询);
}
一切正常。数据已更新。但当我再次关闭并打开我的应用程序时,这些数据具有旧的价值——它不会被更新。我使用的是同一个数据库,它不会被重新创建。为什么会这样
我的数据库路径:
公共静态字符串DB_PATH=PATH.Combine(ApplicationData.Current.LocalFolder.PATH,“test.DB”)代码>
我的数据库文件的属性
复制到输出目录
设置为Copy if Newer
我已经解决了这个问题
无意中,数据库在一开始就被替换了。问题是我在
存储
中创建了数据库,而不是在隔离存储
中。我不知道我是否理解正确,但当它在存储中创建时,数据库是在应用程序的内存中创建的,这就是为什么当我关闭应用程序时数据库过期的原因。但当我在IsolatedStorage中创建数据库时,它会永久性地放在手机内存中。即使我关闭了应用程序,数据库仍然存在,因为它是在手机内存中创建的,而不是在应用程序内存中创建的。@Steve,感谢您的重播<代码>公共静态字符串DB_PATH=PATH.Combine(ApplicationData.Current.LocalFolder.PATH,“test.DB”)代码>。Mytest.db
数据库只创建一次-当数据库不存在于我的WP的My StorageFile中时。然后我的应用程序总是使用我的WP中的这个数据库。所以我不知道为什么重启后会丢失数据……不,我没有注意到WinPhone标签,这个答案不适用于你。