- SQLite on Windows 10 mobile not working
- 1 Answer 1
- SQLite. Готовимся к Windows 10 (Universal App Platform)
- Работа с данными в мобильных приложениях. Реализуем offline хранилище и синхронизацию данных используя Microsoft Azure и SQLite
- Azure Mobile Services SDK для синхронизации
- Настройка Azure Mobile Services
- Создаем проект приложения
- Создание локальной базы данных и синхронизация
- Интерфейс приложения
- Запуск и проверка
- Заключение
- Использование базы данных SQLite в приложении UWP Use a SQLite database in a UWP app
- Некоторые преимущества использования SQLite для локального хранения данных Some benefits of using SQLite for local storage
- Выбор слоя абстрагирования Choose an abstraction layer
- Entity Framework Core Entity Framework Core
- Библиотеке SQLite SQLite library
- Настройка решения для использования библиотеки Microsoft.Data.SQlite Set up your solution to use the Microsoft.Data.SQlite library
- Минимальная версия проекта не предназначена для обновления Fall Creators Update The minimum version of your project does not target the Fall Creators Update
- Минимальная версия проекта предназначена для обновления Fall Creators Update The minimum version of your project targets the Fall Creators Update
- Чтобы использовать версию SQLite, которая устанавливается вместе с Windows, выполните следующие действия. To use the version of SQLite that is installed with Windows
- Добавление SQLite в приложение To include SQLite with your app
- Добавление данных в базу данных SQLite и их извлечение Add and retrieve data in a SQLite database
- Подготовка класса доступа к данным Prepare the data access class
- Инициализация базы данных SQLite Initialize the SQLite database
- Вставка данных в базу данных SQLite Insert data into the SQLite database
- Извлечение данных из базы данных SQLite Retrieve data from the SQLite database
- Добавление базового пользовательского интерфейса Add a basic user interface
- Дальнейшие действия Next steps
SQLite on Windows 10 mobile not working
I want to create this SQLite database for my app, I get this error everytime I try.
An exception of type ‘System.DllNotFoundException’ occurred in SQLite.Net.Platform.WinRT.dll but was not handled in user code
I have SQLite for uwp installed and I added SQLite for universal app (windows) platform added to the references.
It doesn;t happen on Windows Desktop, just an issue with mobile.
1 Answer 1
I have SQLite for uwp installed and I added SQLite for universal app (windows) platform added to the references. It doesn;t happen on Windows Desktop, just an issue with mobile.
According to the code you provided above, you’re using SQLite.Net-PCL NuGet Package for SQLite.
I have reproduced the issue when I use SQLite.Net-PCL NuGet Package for SQLite and only add «SQLite for Universal Windows Platform» to the reference. The code works fine on local machine but failed on the Mobile Emulator and my Windows Phone.
Base on my research, the SDK «SQLite for Universal Windows Platform» depends on SDK «Visual C++ 2015 Runtime for Universal Windows Platform Apps«.
So we may need to add both «SQLite for Universal Windows Platform and «Visual C++ 2015 Runtime for Universal Windows Platform Apps» to the reference when using SQLite.Net-PCL NuGet Package for SQLite.
If only «SQLite for Universal Windows Platform» is added, we will get the following warning:
The SDK «SQLite.UWP.2015, Version=3.13.0» depends on the following SDK(s) «Microsoft.VCLibs, version=14.0», which have not been added to the project or were not found. Please ensure that you add these dependencies to your project or you may experience runtime issues. You can add dependencies to your project through the Reference Manager.
After adding both the two references, the warning disappeared and the issue got fixed.
SQLite. Готовимся к Windows 10 (Universal App Platform)
Здравствуй, уважаемый All!
Хочу рассказать о небольшой библиотеке для работы с SQLite в Windows Phone 8.0 Silverlight, Windows Phone 8.1, Windows 8.1 а сейчас еще и для Windows 10 UAP. Библиотеке уже больше года и т.к. проблем с ней за все время не возникло, то, я считаю, о ней можно рассказать другим.
Зачем все это?
Библиотека в рамках Windows Phone 8.0 Silverlight, Windows Phone 8.1, Windows 8.1 просуществовала больше года. Спрашивается: почему именно сейчас я решил о ней рассказать? Дело в том, что сейчас пора портировать свои приложения для Windows 10, а официального SQLite SDK пока нет.
Вот здесь есть SDK для Windows Phone 8, Windows Phone 8.1, Windows 8 и Windows 8.1. Но не для Windows 10.
И скорее всего не будет до выхода Windows 10. Поэтому есть смысл посмотреть на эту библиотеку.
Поехали
Библиотека называется SQLite.WinRT.
Я не являюсь ее 100% автором. Я лишь собрал многие куски кода, блуждающие по интернету, воедино. Поэтому если вы считаете что я как-то нарушил ваши авторские права, то дайте мне знать — договоримся.
Исходные коды можно посмотреть здесь.
Установить библиотеку можно с помощью NuGet. Есть 5 пакетов:
- SQLite Library Core
- SQLite Library for Windows UAP
- SQLite Library for Windows Phone 8.0
- SQLite Library for Windows Phone 8.1
- SQLite Library for Windows 8.1
Для успешной компиляции придется избавиться от Any CPU и собирать проект отдельно под каждую платформу: x86, x64, ARM.
Для Windows 10 UAP приложений необходимо добавить ссылку на следующие SDK:
- Microsoft Visual C++ 14 AppLocal Runtime Package for Windows UAP
Для Windows 8.1 приложений необходимо добавить ссылку на следующие SDK:
- Microsoft Visual C++ 2013 Runtime Package for Windows
- SQLite for Windows Runtime (Windows 8.1)
Для Windows Phone 8.1 приложений необходимо добавить ссылку на следующие SDK:
- Microsoft Visual C++ 2013 Runtime Package for Windows Phone
- SQLite for Windows Phone 8.1
Для Windows Phone 8.0 приложений необходимо добавить ссылку на следующие SDK:
- SQLite for Windows Phone
Как использовать библиотеку?
Для примера нам понадобятся следующие классы:
Обновляются все поля, кроме основного ключа.
Если очень надо, то можно сделать вот так:
В этом случае будет обновлено только то, что будет указано.
Удаление записи
Выборка данных
А здесь нам поможет LINQ:
Миграция данных
Внимательный читатель заметил 2 интересных вызова:
Первый создает или обновляет таблицы на основе объявленных свойств контекста. Колонки в таблице могут быть только добавлены. Удалить нельзя.
Второй запускает список миграций, версия которых меньше версии базы данных.
Объявляются миграции вот так:
Вот как-то так. Более подробную информацию можно найти в юнит-тестах.
А теперь я готов выслушать ваши замечания, предложения и возражения.
Работа с данными в мобильных приложениях. Реализуем offline хранилище и синхронизацию данных используя Microsoft Azure и SQLite
Сейчас на рынке есть огромное количество приложений, которые не приспособлены для работы offline, что создает неудобства для пользователей.
Некоторое время назад, для разработчиков на C# стал доступен новый Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha, который предоставляет API для создания приложения, работающих в условиях отсутствия интернета и берущий на себя все заботы о синхронизации данных между локальной базой данных и базой данных Azure. В качестве локальной базы данных создается и используется SQLite.
Итак, у нас есть следующие популярные способы организации offline хранилища:
- Сериализация в XML, JSON или другой NoSQL.
- SQLite или другие сторонние БД.
Механизмы синхронизации:
- Каждый раз обновляется локальная копия базы полностью.
- Только изменения передаются по сети.
Средства синхронизации:
- Sync Framework Toolkit
- Azure SQL Data Sync
- Разработка собственной логики и библиотек для синхронизации.
- Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha (! Новое)
Azure Mobile Services SDK для синхронизации
Функциональность нового Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha для синхронизации данных не идентична Sync Framework или Azure Data Sync.
С точки зрения клиентской стороны, пока есть возможность работать только с SQLite, но создатели обещают, что возможности будут развиваться и другие клиентские БД добавятся позже.
Серверная сторона поддерживает следующие базы данных: SQL Database, MongoDB и Azure Table Storage.
SDK поддерживает следующие операции: Push (отправка на сервер), Pull (загрузка с сервера), Purge (очистка локального хранилища).
Сегодня мы остановимся на том, как создать бэкенд для вашего приложения используя Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha.
Для работы нам понадобится:
- Подписка Azure — на сайте можно оформить trial на месяц
- Windows 8.1
- Visual Studio 2013 Update 2
Наша задача будет состоять из следующих пунктов:
- Создание мобильного сервиса и мобильной БД в Microsoft Azure;
- Создание проекта приложения. Мы будем делать универсальное приложение в Visual Studio.
- Создание локальной БД приложения.
- Реализации синхронизации данных.
Давайте приступим…
Настройка Azure Mobile Services
1. Чтобы создать Azure Mobile Service для вашего проекта, необходимо открыть Microsoft Azure Portal и перейти в меню Mobile Services – New
Создавая облачный сервис, вы можете выбрать на каком языке вы будете писать код сервиса. На С# или JavaScript.
2. Когда мобильный сервис создастся, на главной странице сервиса, вы сможете найти инструкции, как использовать его в приложениях для многих популярных платформ и фреймфорков, таких как Windows, Windows Phone, IOS, Android, Xamarin.
3. Вы можете скачать шаблон проекта облачного сервиса, доработать его код, например, поправив модель данных как на скриншоте ниже.
4. Затем, опубликовать в облаке из Visual Studio.
Как разработать и опубликовать облачный сервис достаточно подробно написано тут.
Создаем проект приложения
1. Я буду использовать проект универсального приложения для Windows и Windows Phone.
2. После создания проекта, подключим необходимые библиотеки. Так как у нас проект и для Windows и для Windows Phone, то установить WindowsAzure.MobileServices надо для обоих проектов.
3. В общем проекте (Shared), открываем App.xaml.cs и добавляем туда объявление мобильного сервиса:
4. Теперь мы можем работать с данными через облачный сервис и сохранять данныe в БД.
Создание локальной базы данных и синхронизация
Теперь нам надо создать локальное хранилище данных SQLite.
2. Добавим SQLite в качестве используемой библиотеки для наших приложений Windows и Windows Phone.
3. Установим и добавим в References пакет WindowsAzure.MobileServices.SQLiteStore
4. Откроем Shared проект и создадим там новый пустой класс с моделью данных. В моем случае, он получился вот такой:
5. Создадим вспомогательный класс, который будет создавать нам локальную базу данных, уметь наполнять её данными и отправлять данные в облачный сервис.
Интерфейс приложения
1. Откроем MainPage.xaml и добавим туда кнопки для заполнения таблицы данными и синхронизации.
2. Добавим в MainPage.xaml.cs код для обработки событий.
Запуск и проверка
1. Запустим приложение и посмотрим как оно работает.
2. Как только мы запустили приложение, у нас уже создалась локальная база SQLite. Мы можем найти её в папке приложения и посмотреть. Для этого я буду использовать SQLite Browser.
Моя БД лежит тут: C:\Users\[username]\AppData\Local\Packages\[app id]\LocalState
Как видите, сейчас она пустая.
3. Добавим в неё элемент, нажав на кнопку Add Item нашего приложения.
4. Данные в базе обновятся и туда добавится запись, но наша облачная БД всё еще пуста.
5. Теперь нажмем на кнопку Sync в приложении для синхронизации баз данных и смотрим результат.
Синхронизация отработала и в облачной базе появились данные из локальной базы приложения.
Может так оказаться, что создание локальной БД упадет с ошибкой. Тогда найдите и добавьте в References сборку SQLitePCL.Ext.dll. Сама она почему-то не всегда устанавливается NuGet’ом.
Заключение
Новый Microsoft Azure Mobile Services и его SDK имеет много новых полезных возможностей для разработчиков приложений. Одна из них – это поддержка offline работы и синхронизации данных для приложений. Следуя этой инструкции, вы можете настроить синхронизацию данных для вашего Phone или Windows приложения не тратя много времени на сложные алгоритмы и написание библиотек.
Использование базы данных SQLite в приложении UWP Use a SQLite database in a UWP app
SQLite можно использовать для хранения и извлечения данных из упрощенной базы данных на устройстве пользователя. You can use SQLite to store and retrieve data in a light-weight database on the user’s device. Это руководство содержит соответствующие инструкции. This guide shows you how.
Некоторые преимущества использования SQLite для локального хранения данных Some benefits of using SQLite for local storage
✔️ SQLite легкая и автономная. SQLite is light-weight and self-contained. Это библиотека кода без других зависимых компонентов. It’s a code library without any other dependencies. Ее не требуется настраивать. There’s nothing to configure.
✔️ Тут нет сервера базы данных. There’s no database server. Клиент и сервер работают в одном процессе. The client and the server run in the same process.
✔️ База данных SQLite находится в общедоступном домене, поэтому вы можете свободно использовать и распространять ее в вашем приложении. SQLite is in the public domain so you can freely use and distribute it with your app.
✔️ SQLite работает на разных платформах и архитектурах. SQLite works across platforms and architectures.
Подробнее о SQLite см. здесь. You can read more about SQLite here.
Выбор слоя абстрагирования Choose an abstraction layer
Мы рекомендуем использовать Entity Framework Core или библиотеку SQLite с открытым исходным кодом, встроенные корпорацией Майкрософт. We recommend that you use either the Entity Framework Core or the open-source SQLite library built by Microsoft.
Entity Framework Core Entity Framework Core
Entity Framework (EF) — это объектно-реляционный модуль сопоставления, позволяющий разработчикам работать с реляционными данными с помощью объектов, специализированных для доменов. Entity Framework (EF) is an object-relational mapper that you can use to work with relational data by using domain-specific objects. Если вы уже использовали эту платформу для работы с данными в других приложениях .NET, можно перенести этот код в приложение UWP и он будет работать с соответствующими изменениями в строке подключения. If you’ve already used this framework to work with data in other .NET apps, you can migrate that code to a UWP app and it will work with appropriate changes to the connection string.
Чтобы испытать ее, см. раздел Начало работы с EF Core. To try it out, see Getting Started with EF Core.
Библиотеке SQLite SQLite library
Библиотека Microsoft.Data.Sqlite реализует интерфейсы в пространстве имен System.Data.Common. The Microsoft.Data.Sqlite library implements the interfaces in the System.Data.Common namespace. Майкрософт активно поддерживает эти реализации и предоставляет интуитивно понятную оболочку для низкоуровневых собственных API-интерфейсов SQLite. Microsoft actively maintains these implementations, and they provide an intuitive wrapper around the low-level native SQLite API.
В остальных разделах этого руководства приведены инструкции по работе с этой библиотекой. The rest of this guide helps you to use this library.
Настройка решения для использования библиотеки Microsoft.Data.SQlite Set up your solution to use the Microsoft.Data.SQlite library
Мы начнем с базового проекта UWP, добавим библиотеку классов, а затем установим соответствующие пакеты NuGet. We’ll start with a basic UWP project, add a class library, and then install the appropriate Nuget packages.
Тип библиотеки классов, добавляемой в решение, и специальные пакеты, которые вы устанавливаете, зависят от минимальной версии Windows SDK, для которого предназначено ваше приложение. The type of class library that you add to your solution, and the specific packages that you install depends on the minimum version of the Windows SDK that your app targets. Эти сведения можно найти на странице свойств проекта UWP. You can find that information in the properties page of your UWP project.
Используйте один из следующих разделов в зависимости от минимальной версии Windows SDK, для которого предназначен вам проект UWP. Use one of the following sections depending on the minimum version of the Windows SDK that your UWP project targets.
Минимальная версия проекта не предназначена для обновления Fall Creators Update The minimum version of your project does not target the Fall Creators Update
Если вы используете Visual Studio 2015, щелкните Справка->Сведения о Microsoft Visual Studio. If you’re using Visual Studio 2015, click Help->About Microsoft Visual Studio. Затем в списке установленных программ убедитесь, что версия диспетчера пакетов NuGet — 3.5 или более поздняя версия. Then in the list of installed programs, make sure that you have NuGet package manager version of 3.5 or higher. Если номер версии ниже, установите более позднюю версию NuGet. Скачать ее можно здесь. If your version number is lower than that, install a later version of NuGet here. На этой странице вы найдете все версии Nuget, перечисленные под заголовком Visual Studio 2015. On that page, you’ll find all of the versions of Nuget listed beneath the Visual Studio 2015 heading.
Затем добавьте библиотеку классов в свое решение. Next, add class library to your solution. Использовать библиотеку классов для размещения вашего кода доступа к данным не требуется, но мы используем ее в нашем примере. You don’t have to use a class library to contain your data access code, but we’ll use one our example. Мы назовем библиотеку DataAccessLibrary, а класс в библиотеке — DataAccess. We’ll name the library DataAccessLibrary and we’ll name the class in the library to DataAccess.
Visual C # > «Универсальная платформа Windows» и выделенным параметром «Библиотека классов».» data-linktype=»relative-path»/>
Щелкните правой кнопкой мыши решение, а затем нажмите кнопку Управление пакетами NuGet для решения. Right-click the solution, and then click Manage NuGet Packages for Solution.
Если вы используете Visual Studio 2015, выберите вкладку Установленные и убедитесь, что версия пакета Microsoft.NETCore.UniversalWindowsPlatform — 5.2.2 или более поздняя версия. If you’re using Visual Studio 2015, Choose the Installed tab, and make sure that the version number of the Microsoft.NETCore.UniversalWindowsPlatform package is 5.2.2 or higher.
Если это не так, обновите пакет до более новой версии. If it isn’t, update the package to a newer version.
Выберите вкладку Обзор и выполните поиск пакета Microsoft.Data.SQLite. Choose the Browse tab, and search for the Microsoft.Data.SQLite package. Установите версию пакета 1.1.1 (или ниже). Install version 1.1.1 (or lower) of that package.
Перейдите к разделу Добавление данных в базу данных SQLite и их извлечение данного руководства. Move onto the Add and retrieve data in a SQLite database section of this guide.
Минимальная версия проекта предназначена для обновления Fall Creators Update The minimum version of your project targets the Fall Creators Update
Существует ряд преимуществ повышения минимальной версии проекта UWP для обновления Fall Creators Update. There’s a couple of benefits to raising the minimum version of your UWP project to the Fall Creators update.
В первую очередь можно использовать библиотеки .NET Standard 2.0 вместо стандартных библиотек классов. First off, you can use .NET Standard 2.0 libraries instead of regular class libraries. Это означает, что вы можете передать свой код доступа к данным любому другому приложению на основе .NET. Например, приложениям для WPF, Windows Forms, Android, iOS или ASP.NET. That means that you can share your data access code with any other .NET-based app such as a WPF, Windows Forms, Android, iOS, or ASP.NET app.
Во-вторых, в вашем приложении нет библиотек пакетов SQLite. Secondly, your app does not have to package SQLite libraries. Вместо этого ваше приложение может использовать версию SQLite, которая поставляется вместе с Windows. Instead, your app can use the version of SQLite that comes installed with Windows. Это обеспечивает следующие преимущества. This helps you in a few ways.
✔️ Уменьшает размер приложения, поскольку не требуется скачивать двоичную библиотеку SQLite, а затем упаковывать ее в качестве части приложения. Reduces the size of your application because you don’t have to download the SQLite binary, and then package it as part of your application.
✔️ Отсутствие необходимости в принудительной передаче новой версии вашего приложения пользователям, если SQLite опубликует важные исправления ошибок и уязвимостей безопасности в SQLite. Prevents you from having to push a new version of your app to users in the event that SQLite publishes critical fixes to bugs and security vulnerabilities in SQLite. Версия Windows SQLite обслуживается корпорацией Майкрософт совместно с SQLite.org. The Windows version of SQLite is maintained by Microsoft in coordination with SQLite.org.
✔️ Загрузка приложения может быть быстрее, поскольку, скорее всего, версия SDK-пакета SQLite будет уже загружена в память. App load time has the potential to be faster because most likely, the SDK version of SQLite will already be loaded into memory.
Давайте начнем с добавления библиотеки классов .NET Standard 2.0 в ваше решение. Lets start by adding a .NET Standard 2.0 class library to your solution. Использовать библиотеку классов для размещения вашего кода доступа к данным необязательно, но мы используем ее в нашем примере. It’s not necessary that you use a class library to contain your data access code, but we’ll use one our example. Мы назовем библиотеку DataAccessLibrary, а класс в библиотеке — DataAccess. We’ll name the library DataAccessLibrary and we’ll name the class in the library to DataAccess.
Visual C # > .NET Standard и выделенным параметром «Библиотека классов».» data-linktype=»relative-path»/>
Щелкните правой кнопкой мыши решение, а затем нажмите кнопку Управление пакетами NuGet для решения. Right-click the solution, and then click Manage NuGet Packages for Solution.
Чтобы библиотека классов .NET Standard могла получить доступ к папкам приложения и ресурсам изображений приложения UWP, нужно указать в свойствах EmbeddedResource и CopyAlways. If you want your .NET Standard class library to be able to access app folders and image assets of your UWP app, you will need to mark it as EmbeddedResource and CopyAlways in its properties.
На этом этапе у вас есть выбор. At this point, you have a choice. Можно использовать версию SQLite, которая входит в состав Windows, или если по какой-либо причине вы хотите использовать конкретную версию SQLite, можно добавить библиотеку SQLite в пакет. You can use the version of SQLite that is included with Windows or if you have some reason to use a specific version of SQLite, you can include the SQLite library in your package.
Давайте начнем с использования версии SQLite, которая входит в состав Windows. Let’s start with how you use the version of SQLite that included with Windows.
Чтобы использовать версию SQLite, которая устанавливается вместе с Windows, выполните следующие действия. To use the version of SQLite that is installed with Windows
Выберите вкладку Обзор и выполните поиск пакета Microsoft.Data.SQLite.core, а затем установите его. Choose the Browse tab, and search for the Microsoft.Data.SQLite.core package, and then install it.
Выполните поиск пакета SQLitePCLRaw.bundle_winsqlite3, а затем установите его только в проект UWP в вашем решении. Search for the SQLitePCLRaw.bundle_winsqlite3 package, and then install it only to the UWP project in your solution.
Добавление SQLite в приложение To include SQLite with your app
Этого делать не требуется. You don’t have to do this. Но если вы хотите добавить конкретную версию SQLite в свое приложение, выберите вкладку Обзор и выполните поиск пакета Microsoft.Data.SQLite. But if you have a reason to include a specific version of SQLite with your app, choose the Browse tab, and search for the Microsoft.Data.SQLite package. Установите версию пакета 2.0 (или ниже). Install version 2.0 (or lower) of that package.
Добавление данных в базу данных SQLite и их извлечение Add and retrieve data in a SQLite database
Мы выполним следующие действия. We’ll do these things:
1️⃣ Подготовка класса доступа к данным. Prepare the data access class.
2️⃣ Инициализация базы данных SQLite. Initialize the SQLite database.
3️⃣ Вставка данных в базу данных SQLite. Insert data into the SQLite database.
4️⃣ Извлечение данных из базы данных SQLite. Retrieve data from the SQLite database.
5️⃣ Добавление базового пользовательского интерфейса. Add a basic user interface.
Подготовка класса доступа к данным Prepare the data access class
В проекте UWP добавьте ссылку на проект DataAccessLibrary в своем решении. From your UWP project, add a reference to the DataAccessLibrary project in your solution.
Добавьте следующий оператор using в файлы App.xaml.cs и MainPage.xaml.cs в проекте UWP. Add the following using statement to the App.xaml.cs and MainPage.xaml.cs files in your UWP project.
Откройте класс DataAccess в вашем решении DataAccessLibrary и сделайте этот класс статическим. Open the DataAccess class in your DataAccessLibrary solution and make that class static.
В нашем примере мы размещаем код доступа к данным в статическом классе, однако это лишь проектное решение, которое не является обязательным. While our example will place data access code in a static class, it’s just a design choice and is completely optional.
Добавьте следующие операторы использования в начало этого файла. Add the following using statements to the top of this file.
Инициализация базы данных SQLite Initialize the SQLite database
Добавьте метод в класс DataAccess, который инициализирует базу данных SQLite. Add a method to the DataAccess class that initializes the SQLite database.
Этот код создает базу данных SQLite и сохраняет ее в локальном хранилище данных приложения. This code creates the SQLite database and stores it in the application’s local data store.
В этом примере мы используем имя базы данных sqlliteSample.db , но вы можете использовать любое имя при условии, что оно будет использоваться во всех объектах SqliteConnection, экземпляры которых необходимо создать. In this example, we name the database sqlliteSample.db but you can use whatever name you want as long as you use that name in all SqliteConnection objects that you instantiate.
В конструкторе файла App.xaml.cs проекта UWP вызовите метод InitializeDatabase класса DataAccess. In the constructor of the App.xaml.cs file of your UWP project, call the InitializeDatabase method of the DataAccess class.
Вставка данных в базу данных SQLite Insert data into the SQLite database
Добавьте метод в класс DataAccess, который вставляет данные в базу данных SQLite. Add a method to the DataAccess class that inserts data into the SQLite database. Этот код использует параметры в запросе для предотвращения атак путем внедрения кода SQL. This code uses parameters in the query to prevent SQL injection attacks.
Извлечение данных из базы данных SQLite Retrieve data from the SQLite database
Добавьте метод, который возвращает строки данных из базы данных SQLite. Add a method that gets rows of data from a SQLite database.
Метод Read считывает строки возвращаемых данных. The Read method advances through the rows of returned data. Он возвращает значение true, если остались строки. В противном случае он возвращает значение false . It returns true if there are rows left, otherwise it returns false.
Метод GetString возвращает значение конкретного столбца в виде строки. The GetString method returns the value of the specified column as a string. Он принимает целое число, представляющее собой отсчитываемый от нуля порядковый номер столбца необходимых данных. It accepts an integer value that represents the zero-based column ordinal of the data that you want. Можно использовать похожие методы, такие как GetDataTime и GetBoolean . You can use similar methods such as GetDataTime and GetBoolean. Выберите метод в зависимости от типа данных в столбце. Choose a method based on what type of data the column contains.
Порядковый номер параметра не так важен в этом примере, так как мы выбираем все записи в одном столбце. The ordinal parameter isn’t as important in this example because we are selecting all of the entries in a single column. Тем не менее, если несколько столбцов являются частью запроса, используйте порядковое значение для получения столбца, из которого требуется извлечь данные. However, if multiple columns are part of your query, use the ordinal value to obtain the column you want to pull data from.
Добавление базового пользовательского интерфейса Add a basic user interface
В файл MainPage.xaml проекта UWP добавьте следующий XAML-код. In the MainPage.xaml file of the UWP project, add the following XAML.
Этот базовый пользовательский интерфейс предоставляет пользователю поле TextBox , которое можно использовать для ввода строки, которую мы добавим в базу данных SQLite. This basic user interface gives the user a TextBox that they can use to type a string that we’ll add to the SQLite database. Мы подключимся Button в этом пользовательском интерфейсе к обработчику событий, который будет получать данные из базы данных SQLite и затем отображать их в ListView . We’ll connect the Button in this UI to an event handler that will retrieve data from the SQLite database and then show that data in the ListView .
В файл MainPage.xaml.cs добавьте следующий обработчик. In the MainPage.xaml.cs file, add the following handler. Это метод, который мы связали с кнопкой Click событие Button в пользовательском интерфейсе. This is the method that we associated with the Click event of the Button in the UI.
Готово! That’s it. Изучите Microsoft.Data.Sqlite чтобы узнать, что еще можно сделать с вашей базой данных SQLite. Explore the Microsoft.Data.Sqlite to see what other things you can do with your SQLite database. Перейдите по ссылкам ниже, чтобы узнать о других способах использования данных в приложении UWP. Check out the links below to learn about other ways to use data in your UWP app.
Дальнейшие действия Next steps
Подключение приложения непосредственно к базе данных SQL Server Connect your app directly to a SQL Server database
Совместное использование кода между разными приложениями на различных платформах Share code between different apps across different platforms
Добавление страниц с основными и подробными данными с помощью серверов Azure SQL Add master detail pages with Azure SQL back ends