繁体   English   中英

如何在Windows Phone运行时中使用SQLiteConnection?

[英]How to use SQLiteConnection in Windows Phone Runtime?

我想在Windows Phone运行时应用程序中使用SQL关系。 所以看来我需要使用SQLite-net Extensions

我已经引用了这些文件:

 SQLite.Net 
 SQLiteNetExtensions 
 SQLite for Windows Phone 8.1

但是当我想建立连接时:

var connection = new SQLiteConnection( ... );

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

(似乎没有适用于Windows Phone Runtime的现成的SQLite Net Extensions软件包,如果有人知道如何获取它,我将不胜感激)

如果已正确安装所有组件,则参数仅为数据库文件的位置+ 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的换通用窗口
Windows Phone 8.1的SQLite

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

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

现在应该可以工作了。

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

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

对于WinPhone81项目,这对我有用:

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

我有三个相关的Nuget pkg: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自述文件上的说明手动添加),以及一个由我在添加时由Nuget pkg安装程序添加的对SQLite.Net.Platform.WinRT的库引用。 SQLiteNetExtensions的pkg。

这完全使人想起了.Net诞生之前的旧式DLL地狱。 似乎在阳光下没有新事物。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM