如何在Windows Phone Runtime中使用SQLiteConnection?

时间:2014-10-14 12:45:44

标签: c# sqlite windows-phone-8 windows-runtime windows-phone

我想在Windows Phone Runtime应用中使用SQL关系。所以我似乎需要使用SQLite-net Extensions

我引用了这些文件:

 SQLite.Net 
 SQLiteNetExtensions 
 SQLite for Windows Phone 8.1

但是当我想要建立联系时:

var connection = new SQLiteConnection( ... );

它需要ISQLitePlatform接口的实现。我如何获得参数值?

SQLite Net Extensions似乎还没有准备好Windows Phone Runtime个套餐,如果有人知道如何获得它我非常感激

3 个答案:

答案 0 :(得分:0)

如果您已正确安装所有内容,则参数只是数据库文件的位置+ file_name。像这样:

string dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");          

using (var db = new SQLiteConnection(dbPath))
{
    db.RunInTransaction(() =>
    {            
       // ....
    });
}

db.sqlite 可以是你想要的任何东西,它只是存储文件夹中文件的名称(但它必须存在,所以你需要先创建它)


一些有用的链接:

Sqlite-for-Universal-Windows
SQLite for Windows Phone 8.1

答案 1 :(得分:0)

我知道这是一个相当新的开发,但我认为他们几个小时前更新了他们的nuget包:

https://bitbucket.org/twincoders/sqlite-net-extensions/issue/27/error-while-adding-sqlite-net-extension-to

现在应该可以了。

答案 2 :(得分:0)

SQLite.Net-PCL自3.1.1版开始更改了API。根据他们的github项目中的自述文件:

  

您现在必须传入ISQlitePlatform的实现   SQLiteConnectionWithLock和SQLiteConnection构造函数。该   正确的平台实施会自动添加到项目中。

这对我来说对WinPhone81项目有用:

var conn = new SQLiteConnection( new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(),  path);

我有三个相关的Nuget pkgs: SQLite.Net.Core-PCL(v3.1.1) SQLite.Net-PCL(v3.1.1) SQLiteNetExtensions(v1.3.0)

也是针对Windows Phone 8.1的SQLite的库引用(根据SQLite.Net-PCL自述文件中的说明手动添加), 以及当我为SQLiteNetExtensions添加pkg时由Nuget pkg安装程序添加的SQLite.Net.Platform.WinRT的库引用。

这一切都让人联想到.Net诞生之前发生的旧式DLL地狱。似乎在阳光下没有新东西。