2014-09-22 65 views
0

我有與預先填充了一些數據的SQlite數據庫的Metro應用程序。 允許用戶更改和添加更多數據。Windows應用商店應用和SQLite用戶數據

問題是:如何在應用更新之間保存用戶數據? 我應該選擇哪個文件夾:

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

回答

1

您可能想使用這兩個位置。

InstalledLocation包含應用程序附帶的任何數據。它是隻讀的,因此用戶不能在該位置更改或添加數據。

ApplicationData文件夾是每個用戶都可寫的。他們會堅持更新。

典型模式是將預填充的數據庫發送到您的應用程序包中,以便將其安裝在installedLocation文件夾中。當應用程序首次運行時,它可以將數據庫從installedLocation複製到ApplicationData文件夾,然後應用程序可以使用該數據。

只要應用程序不復制ApplicationData文件夾中已有的任何數據,那麼用戶的數據將在更新之間保持不變。如果用戶只是添加數據並且不更改預填充數據,或者預填充的數據不隨更新而更改,那麼這很容易。您可以複製任何新數據,但不能覆蓋現有數據。

如果用戶可以更改預先填充的數據,並且更新可以更改預先填充的數據,那麼這會有點棘手:您需要一個系統來知道當前數據是否來自用戶,然後只有當它不是來自用戶時才更新它。如何做到這一點取決於數據庫和數據。兩種可能性是修改後的列或時間戳。