Windows 8.1 Store App和SQLite

时间:2014-08-03 11:30:14

标签: sqlite visual-studio-2013 windows-store-apps windows-8.1

我需要创建一个Windows 8.1 Store App,我需要一个便携式数据库; SQLite似乎是个不错的选择。

不幸的是,我花了一整天时间试图了解我必须将哪些部分组合在一起以使其全部工作。我找到了许多针对Windows 8的文章,但没有针对8.1的文章。除此之外,我发现了许多包装器,帮助器等,这只会增加混乱。

到目前为止,我已使用以下链接安装了SQLite 3.8.5作为VS扩展:http://visualstudiogallery.msdn.microsoft.com/1d04f82f-2fe9-4727-a2f9-a2db127ddc9a

我还使用VS NuGet Manager安装了NuGet sqlite-net软件包。我的项目用2个新文件编译好。

在这两个步骤之后,我仍然无法使用SQLite。 SQLite名称空间不可见。

我的目标很简单:安装官方SQLite包。或者,我希望能够在它之上使用SQLite-net。另外,有人可以指点我一个好的SQLite教程(VB / C#)。

提前致谢。

编辑: 我决定暂时忘记sqlite-net,并尝试了一个简单的测试数据库读取。

Dim s as new SQLiteWinRT.Database("test.db")
Await s.OpenAsync(SQLiteWinRT.SqliteOpenMode.OpenReadWrite)

产生这个奇怪的错误:compobj.dll太旧而无法初始化ole2.dll(来自HRESULT的异常:0x8004000E(OLE_E_WRONGCOMPOBJ))

1 个答案:

答案 0 :(得分:0)

您应该能够查询Nuget以获取与Windows 8.1兼容的最新SQLite程序集。 找到后,安装它然后按照这种模式:

SQLiteAsyncConnection connection = new SQLiteAsyncConnection(Constants.DATABASE_FILE_NAME);
await connection.CreateTableAsync<Bizmonger.Client.Infrastructure.DAL.Entities.Service>();

var service = CreateSomeService();
await connection.InsertAsync(service);

您的类至少需要一个属性的主键属性:

public class Service
{
    [PrimaryKey]
    public string ServiceId { get; set; }

    public string UserId { get; set; }

    [MaxLength(250)]
    public string Description { get; set; }

    [MaxLength(30)]
    public string Name { get; set; }
}