3

我的应用程序sqlite-net-wp8用于 Windows Phone 8 来管理本地数据库。

似乎数据库文件从未写入 IsoStore(如 所示IsoStoreSpy)。不抛出异常。

我尝试了以下方法:

  • 将 Windows Phone 的 SQLite 从 3.7.1.16 升级到 3.8.0.2(一个非常痛苦的过程)

  • 按照Working with sqlite in windows phone 8 a sqlite net version for mobile中的建议提供绝对和相对路径。

    SQLite.SqliteConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, filename))
    SQLite.SqliteConnection(filename)
    
  • 向 SQLite.SQLiteConnection 显式提供 SQLiteOpenFlags

  • 其他随意的东西

这是我的代码(我正在使用USE_WP8_NATIVE_SQLITE

string filename = "data.db";
string seqStr = "CREATE TABLE ...";
using (SQLiteConnection db = new SQLite.SQLiteConnection(filename, 
    SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite, true))
{
    db.BeginTransaction();
    db.Execute(seqStr);
    db.Commit();
    db.Close();
}

我已经没有想法了。如果有人可以帮助我,我将非常感激。

4

1 回答 1

2

终于,解决了!

你是对的,db.Close()是多余的(Dispose 将调用 Close() 函数。

我的非工作代码:

string filename = "Data Source=" + "data.db" + ";Version=3;New=False;Compress=True;"

我现在的工作代码:

string filename = Path.Combine(ApplicationData.Current.LocalFolder.Path, "data.db");

一个小路障被移除,还有更多的路要走!

于 2013-09-09T07:05:50.993 回答