【问题标题】:Can the Path assigned a SQLite DB be an arbitrary value?分配给 SQLite DB 的路径可以是任意值吗?
【发布时间】:2014-10-17 17:31:27
【问题描述】:

this blog post 中,给出了一些在 Windows 应用商店应用程序中开始使用 SQLite 的先决条件代码,用于添加到 App.xaml.cs 的 OnLaunched 方法中:

// Get a reference to the SQLite database
this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "customers.sqlite");

我的问题是:我可以使用任意值来替换“customers.sqlite”部分,还是必须与我的代码中的其他内容相匹配,例如我的表定义类的名称(在我的情况下为“PhotraxCoreData .cs”,根据格林先生的建议,我在新创建的“模型”文件夹下面添加了)?

我的理解是,一旦我定义了这些类(我做了),以及 App.xaml.cs 中的上述代码,以及那里的代码(适用于我的 SQLite 类):

using (var db = new SQLite.SQLiteConnection(this.DBPath))
{
    // Create the tables if they don't exist
    db.CreateTable<PhotraxBaseData>();
    db.CreateTable<PhotraxNames>();
    db.CreateTable<PhotraxQueries>();
}

...将创建基于我指定的那些类的 SQLite 表,并具有名称“customers.sqlite”(前提是我不更改它)。

那么,我可以使用:

this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "platypus.sqlite");

...或者必须是这样的:

this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "PhotraxCoreData.sqlite");

【问题讨论】:

  • 根据罗伯特格林文章中引用的视频,它是一个任意值——它可以是任何值。

标签: sqlite windows-store-apps app.xaml


【解决方案1】:

那个数据库名只是一个文件名。 您的应用必须可以访问该目录,但文件名可以是任何名称。

【讨论】:

    【解决方案2】:

    正如 CL 所说,文件名可以是应用程序可以直接访问的任何内容。 Windows 应用商店应用程序对文件系统的访问权限有限,因此 sqlite 数据库必须位于应用程序安装位置(只读)或其应用程序数据文件夹(读写)中。一种常见的模式是在应用程序包中提供一个种子数据库,然后在首次使用时将其从安装位置复制到应用程序数据中,以便写入。

    【讨论】:

    • 对于 Windows Store 应用程序中的 SQLite,我相信通过设置 RG 演示的方式将自动在应用程序数据文件夹中生成数据库及其表...对吗?它以这种方式在我的开发机器上为我工作,我假设/希望它也能在用户的机器上以这种方式工作。
    • 是的。您可以在应用程序数据目录中以编程方式创建数据库,因为您在那里具有读写访问权限。
    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多