嗨,有人可以推荐我如何在Windows商店应用程序中连接到sql lite db吗?我将名为database.sqlite的文件添加到我的应用程序中,如新项目。但我找不到如何连接到现有文件。我发现了这个:
StorageFile DataFile =
await ApplicationData.Current.LocalFolder.GetFileAsync("database.sqlite");
但我不知道如何写出正确的文件路径。有没有人有一些想法。
答案 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...