我目前正在使用SQLite开发物联网核心UWP应用。我遇到了问题,在远程Rapberry上调试或部署我的应用程序之后,在程序运行后,我的所有表都消失了。
我有一些讨厌的代码:
private static SQLiteConnection DbConnection
{
get
{
return new SQLiteConnection(
new SQLitePlatformWinRT(),
Path.Combine(ApplicationData.Current.LocalFolder.Path, "IoTdb.sqlite"));
}
}
private void createDatabase()
{
try
{
db = DbConnection;
db.TraceListener = new DebugTraceListener();
db.CreateTable<kapu_modClass>();
db.Close();
//string query = "CREATE TABLE IF NOT EXISTS " + getTName(11) + " (kapuMAzon int NOT NULL, kapuMNev varchar(255), PRIMARY KEY(kapuMAzon));";
//db.Execute(query);
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
}
当我运行我的代码时,我可以创建表格,将数据输入其中:
kapu_modClass km = new kapu_modClass();
km.kapuMAzon = 1;
km.kapuMNev = "1";
db.Execute("INSERT INTO " + getTName(11) + " (kapuMAzon) VALUES('" + km.kapuMAzon + "');") ;
[Table ("kapu_mod_tabla")]
public class kapu_modClass
{
[PrimaryKey, Column("kapuMAzon", Name = "kapuMAzon")]
public int kapuMAzon { get; set; }
[MaxLength(255), Column("kapuMNev", Name = "kapuMNev")]
public string kapuMNev { get; set; }
}
一切正常,直到我关闭应用程序,然后当我重新启动它时,我会丢失所有内容,只剩下数据库。
有什么建议吗?
更新: 看来,它有一个2个开始的cicle期间:在第一次尝试时,它会生成我的数据库,但无法开启它。在第二次启动时,数据库文件就在那里,不需要创建,打开,创建表,关闭程序后,删除第一次尝试时创建的数据库,然后返回第一个cicle。在每次启动时,我的所有表都是空的,尝试db.Execute(&#34; PRAGMA TEMP_STORE = 1&#34;);它命令,它设置我的表永久,但没有工作的电子。
答案 0 :(得分:0)
好吧,我有它,当我在调试模式下运行,或者制作一个调试应用程序包时,它会丢失所有内容,在生成一个发布应用程序包后,它可以正常工作。