在Windows应用商店应用中连接到sqlite数据库

时间:2013-09-02 13:28:38

标签: c# windows-8 windows-store-apps

嗨,有人可以推荐我如何在Windows商店应用程序中连接到sql lite db吗?我将名为database.sqlite的文件添加到我的应用程序中,如新项目。但我找不到如何连接到现有文件。我发现了这个:

StorageFile DataFile = 
  await ApplicationData.Current.LocalFolder.GetFileAsync("database.sqlite");

但我不知道如何写出正确的文件路径。有没有人有一些想法。

1 个答案:

答案 0 :(得分:1)

将数据库文件添加到项目时,它被视为项目的资产。该文件与您的应用程序一起存储,并且位于只读位置。

要访问只读版本,您必须使用:

StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(
  new Uri("ms-appx:///relative/path/to/db/database.sqlite"));

其中relative/path/to/db是相对于项目顶层的路径。例如,如果您的项目有一个名为Data的文件夹,其中包含您的db文件,那么您将使用"ms-appx:///Data/database.sqlite"

由于文件是只读的,因此无法写入。如果您需要这样做,您必须先将其复制到可写位置(例如ApplicationData.Current.LocalFolder):

// get reference to read-only copy
StorageFile readonlyDb = await StorageFile.GetFileFromApplicationUriAsync(
  new Uri("ms-appx:///Data/database.sqlite"));
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
// make a copy in a writeable location
StorageFile DataFile = await readonlyDb.CopyAsync(localFolder, "database.sqlite");
// now open a sqlite connection to DataFile...