我正在使用vs Studio 2017 15.9.6版开发UWP应用程序。
我想使用Windows本地SQLite数据库。用户首次安装应用程序时,我想运行一个名为mySql.txt
的SQL脚本。我不想每次用户运行应用程序时都运行它,因为它包含insert语句,这将导致重复的行插入。所以我只想运行一次该脚本,最好在安装时运行一次。
我该怎么做?我对UWP和.NET非常陌生。如果可能,请分步指导我。
答案 0 :(得分:0)
您可以确保对该应用程序仅进行一次初始化/播种。为此,您可以使用ApplicationDate.Current.LocalSettings
。
这些允许您为应用程序编写绑定到应用程序的简单数据。用户卸载应用后,这些数据也会被删除。这完全适合您的情况。
假设您的数据库初始化代码在方法InitializeDb()
中。您可以使用以下命令确保初始化仅完成一次:
if (!ApplicationData.Current.LocalSettings.Values.ContainsKey("DbInitialized"))
{
InitializeDb();
ApplicationData.Current.LocalSettings.Values["DbInitialized"] = true;
}
此代码首先检查我们之前是否已初始化数据库,如果没有,则执行初始化并将标志存储到应用程序设置中,以确保下次跳过初始化。
您可以在应用初始化期间运行此代码,例如,以OnLaunched
方法,或者在首次需要数据库服务时运行。
这当然是最简单的实现,因此您可以(并且应该)添加一些异常处理,这样,如果初始化失败,则可以重试等等。另外,您可能需要处理应用程序更新和数据库更新-在这种情况下,您可以使用ApplicationData.Current.Version
来跟踪应用程序数据的版本,也可以用来跟踪数据库版本,以便执行适当的操作。版本之间的迁移。
最后,为了提供更好的用户便利,还有一种在更新过程中执行应用程序更新步骤的方法。有关更多信息,请参见this文章。