SQLite表在关闭后消失

时间:2017-05-04 17:44:29

标签: sqlite uwp

我目前正在使用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;);它命令,它设置我的表永久,但没有工作的电子。

1 个答案:

答案 0 :(得分:0)

好吧,我有它,当我在调试模式下运行,或者制作一个调试应用程序包时,它会丢失所有内容,在生成一个发布应用程序包后,它可以正常工作。