Windows应用商店应用和SQLite用户数据

时间:2014-09-22 17:34:01

标签: sqlite windows-runtime

我有一个带有SQlite DB的Metro应用程序,它预先填充了一些数据。 允许用户更改并添加更多数据。

问题是:如何在应用更新之间保留用户数据? 我应该选择哪个文件夹:

Windows.ApplicationModel.Package.Current.installedLocationWindows.Storage.ApplicationData.Current.LocalFolder

1 个答案:

答案 0 :(得分:1)

您可能希望同时使用这两个位置。

InstalledLocation包含应用随附的所有数据。它是只读的,因此用户无法在该位置更改或添加数据。

ApplicationData文件夹是按用户和可写的。他们将坚持更新。

典型的模式是将预先填充的数据库发送到您的应用包中,以便将其安装在installedLocation文件夹中。当应用程序首次运行时,它可以将数据库从installedLocation复制到ApplicationData文件夹,然后应用程序可以使用该数据。

只要应用程序不复制ApplicationData文件夹中已有的任何数据,用户的数据就会在更新之间保留。如果用户只是添加数据并且没有更改预先填充的数据,或者如果预先填充的数据没有随更新而变化,那么这很容易。您只需复制任何新数据,但不能覆盖现有数据。

如果用户可以更改预先填充的数据,并且更新可以更改预先填充的数据,那么这会变得有点棘手:您需要一个系统来了解当前数据是否来自用户,然后更新只有它不是来自用户。最好的方法取决于数据库和数据。两种可能性是修改的列或时间戳。