【问题标题】:How to create local database for universal app in Visual Studio 2015?如何在 Visual Studio 2015 中为通用应用程序创建本地数据库?
【发布时间】:2015-09-09 20:20:22
【问题描述】:

如何在 Visual Studio 2015 中为通用应用程序创建本地数据库?

我找不到任何解决方案。我找到了一些解决方案,例如 Windows Phone 8.1 的 SQLite,但这些解决方案在 VS2015 中不可用。谁能帮我创建这个本地数据库?

我想创建一个 WP 8.1 应用程序并为手机本身提供一个本地数据库。我不想要像 Azure 这样的在线数据库。

【问题讨论】:

标签: c# database windows-phone-8.1 visual-studio-2015 win-universal-app


【解决方案1】:

您必须根据项目类型安装正确的 VS 扩展。对于通用应用程序,正确的扩展名为“通用应用程序平台的 SQLite”,可以在此处下载:https://visualstudiogallery.msdn.microsoft.com/4913e7d5-96c9-4dde-a1a1-69820d615936?SRC=VSIDE。对于 WP 8.1 项目,正确的扩展名是 SQLite for Windows Phone 8.1。

接下来,您必须在您的项目中添加一个引用(可用于之前的扩展):References > Universal Windows > Extensions > SQLite for Universal App Platform。

为简单起见,您需要一个 nuget 包:SQLite-Net-PCL(保留大小写)。

在代码中,你可以创建一个带有一些属性的实体:

public class Test
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }

    public string Value { get; set; }
}

接下来,您可以通过这种方式打开连接填充并读取数据库:

await Task.Run(() =>
{
    ISQLitePlatform platform = new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT();
    using (SQLiteConnection connection = new SQLiteConnection(platform, Path.Combine(ApplicationData.Current.LocalFolder.Path, "mydb.db")))
    {
        connection.CreateTable<Test>(); // create if not exists
        var test = new Test
        {
            Value = "test"
        };
        connection.Insert(test);
        //var lastInsertedId = platform.SQLiteApi.LastInsertRowid(connection.Handle);
        var lastInsertedId = test.Id; // more simple
        var value = connection.Find<Test>(lastInsertedId);
        Debug.WriteLine(value);
    }
});

注意:api 是完全同步的,所以 Task.Run(就像我的示例中一样)可能是一个很好的做法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多