将SQLite数据库保存到Documents Folder win Windows Store App中

时间:2013-03-27 08:10:25

标签: c# sqlite windows-runtime windows-store-apps

我一直在使用XAML和C#编写Windows 8商店应用程序,目标设备是Windows Surface平板电脑。

在我的应用程序中,我使用SQLite数据库。

要创建/加载数据库,我使用以下代码:

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

但是我想将数据库存储在Documents文件夹中,所以我尝试使用以下代码行替换上面的代码:

DBPath = Path.Combine(Windows.Storage.KnownFolders.DocumentsLibrary.Path, "MyDatabase.sqlite");

当我尝试这个时,我收到以下错误:

WinRT information: Access to the specified location (DocumentsLibrary) requires a capability to be declared in the manifest.

所以我打开Package.appxmanifest并在功能下选择Documents Library,在声明选项卡下我添加了一个文件类型关联。然后在属性下我输入了 名称框中的sqlite和文件类型框中的.sqlite。我在Package.appxmanifest屏幕上没有输入任何其他信息。

现在,当我运行应用程序时,收到以下错误:

Could not open database file: MyDatabase.sqlite (CannotOpen)

当我检查Windows.Storage.KnownFolders.DocumentsLibrary.Path时,它等于“”。我希望这里有完整的位置路径。

任何人都可以帮忙,有没有人将SQLite数据库保存到文档文件夹?

提前致谢。

1 个答案:

答案 0 :(得分:0)

KnownFolders.DocumentsLibrary没有路径,因为它是虚拟位置。有关详细信息,请查看this answer。这可能导致无法在那里打开SQLite数据库,至少使用sqlite-net库中提供的API。

在使用Windows应用商店应用中的文档库之前,请注意,要将具有此功能的应用发布到商店need to have a company account。对于个人帐户,此类申请将被拒绝。