Заполните SQLite только один раз при установке приложения UWP - PullRequest
0 голосов
/ 01 февраля 2019

Я занимаюсь разработкой приложения UWP с использованием vs studio 2017 версии 15.9.6.Я хочу использовать Windows локальную базу данных SQLite.Я хочу запустить скрипт SQL с именем mySql.txt, когда пользователь впервые устанавливает приложение.Я не хочу запускать его каждый раз, когда пользователь запускает приложение, поскольку оно содержит оператор вставки, что приведет к вставке дублирующихся строк.Поэтому я хочу запустить этот скрипт только один раз, желательно во время установки.

Как я могу это сделать?Я очень новичок в UWP и .NET.Пожалуйста, наставьте меня, если возможно, шаг за шагом.

1 Ответ

0 голосов
/ 01 февраля 2019

Вы можете убедиться, что инициализация / заполнение выполняется только один раз для приложения.Для этого вы можете использовать ApplicationDate.Current.LocalSettings.

. Они позволяют вам записывать простые данные для вашего приложения, которые привязаны к вашему приложению.Как только пользователь удалит приложение, эти данные также будут удалены.Это в точности соответствует вашему сценарию.

Предположим, код инициализации вашей базы данных находится в методе InitializeDb().Вы можете использовать следующее, чтобы убедиться, что инициализация выполняется только один раз:

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

Этот код сначала проверяет, инициализировали ли мы ранее базу данных и, если нет, выполняет инициализацию и сохраняет флаг в настройках приложения, чтобыубедитесь, что в следующий раз инициализация будет пропущена.

Этот код можно запустить во время инициализации приложения, например, в методе OnLaunched или при первой необходимости в службе базы данных.

ЭтоЭто, конечно, самая простая реализация, поэтому вы можете (и должны) добавить некоторую обработку исключений, чтобы в случае сбоя инициализации ее можно было повторить и так далее.Также вы можете обрабатывать обновления приложений и БД - в этом случае вы можете использовать ApplicationData.Current.Version, который позволяет отслеживать версию данных приложения и может также использоваться для отслеживания версии БД, чтобы вы могли выполнять соответствующие миграции междуверсии.

Наконец, для еще большего удобства пользователя также есть способ выполнить шаги обновления приложения во время обновлений.См. эту статью для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...