代码之家  ›  专栏  ›  技术社区  ›  Muhammad Idrees

安装uwp应用程序后只填充一次sqlite

  •  0
  • Muhammad Idrees  · 技术社区  · 6 年前

    我正在使用vs studio 2017版本15.9.6开发uwp应用程序。 我想使用windows本地sqlite数据库。我想运行一个名为 mySql.txt 当用户第一次安装应用程序时。我不想每次用户运行应用程序时都运行它,因为它包含insert语句,这将导致重复的行插入。所以我只想运行该脚本一次,最好在安装时运行。

    我该怎么做?我对uwp和.net很陌生。如果可能的话,请一步一步地引导我。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Martin Zikmund    6 年前

    您可以确保应用程序的初始化/种子设定仅完成一次。你可以利用 ApplicationDate.Current.LocalSettings .

    这些允许您为绑定到应用程序的应用程序编写简单数据。一旦用户卸载应用程序,这些数据也将被删除。这完全符合你的设想。

    假设数据库初始化代码在方法中 InitializeDb() . 您可以使用以下方法来确保初始化仅完成一次:

    if (!ApplicationData.Current.LocalSettings.Values.ContainsKey("DbInitialized"))
    {
       InitializeDb();
       ApplicationData.Current.LocalSettings.Values["DbInitialized"] = true;
    }
    

    此代码首先检查我们是否已经初始化了数据库,如果没有,则执行初始化并将标志存储到应用程序设置中,以确保下次跳过初始化。

    您可以在应用程序初始化期间运行此代码,例如 OnLaunched 方法,或在首次需要数据库服务时打开。

    这当然是最简单的实现,因此您可以(而且应该)添加一些异常处理,以便如果初始化失败,可以重试,等等。此外,您可能需要处理应用程序更新和数据库更新-在这种情况下,您可以使用 ApplicationData.Current.Version 它允许您跟踪应用程序数据的版本,并可用于跟踪数据库版本,以便您可以在版本之间执行适当的迁移。

    最后,为了更好地方便用户,还可以在更新期间执行应用程序更新步骤。见 this 文章了解更多信息。