2014-10-17 99 views
0

this blog post,使用在Windows应用商店应用程序的SQLite入门一些必备的代码给出,用于添加到App.xaml.cs的OnLaunched方法:指定SQLite数据库的路径可以是任意值吗?

// 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"); 
+0

根据罗伯特格林的文章中引用的视频,它是一个任意值 - 它可以是任何东西。 – 2014-10-17 17:40:08

回答

1

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

1

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

+0

对于Windows Store应用程序中的SQLite,我相信通过设置RG演示的方式会自动生成数据库及其在应用程序数据文件夹中的表格......对吗?它在我的开发机器上适用于我,我假设/希望它也能在用户的机器上以这种方式工作。 – 2014-10-19 14:20:39

+1

是的。您可以在应用程序数据目录中以编程方式创建数据库,因为您在那里读取了+写入权限。 – 2014-10-19 17:42:00

相关问题