SQLitePCL

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:28, 27 июня 2018.
SQLitePCL
53a9d2ed7726402b845c306a972cc24c.png
Разработчики: Microsoft Open Technologies, Inc.
Постоянный выпуск: 3.8.7.2 / 12.12.2014
Написана на: C
Операционная система: Кроссплатформенная
Локализация: Английский язык
Веб-сайт sqlitepcl.codeplex.com

SQLitePCL – портативная (переносимая) библиотека классов (Portable Class Library) для встраиваемой СУБД SQLite, которая упрощает процесс разработки кроссплатформенных .NET приложений, предоставляя единый интерфейс в Windows Phone, Windows Store и .NET Framework 4.5.

Общее[Источник 1]

SQLitePCL представляет собой обертку/wrapper библиотеки Cи, которая позволяет разработчикам .NET работать с базами SQLite единым образом при реализации локальной базы данных в приложениях для Windows, Windows Store, Windows Phone, Android (Xamarin) и iOS (Xamarin). SQLitePCL бесплатна.

Работа с SQLitePCL[Источник 2]

Подключение SQLite в проект UWP

Для демонстрации возможностей SQLitePCL рассмотрим пример реализации универсального приложения для Windows и Android.

Для того, чтобы добавить SQLite в проект UWP необходимо:

1. В поле «Средства» Visual Studio 2017 выбрать: Расширения и обновления/В сети/Visual Studio Marketplace/:

Установка SQLite в UWP

2. Скачать и установить SQLite for Universal Windows Platform.

3. Для того, чтобы изменения вступили в силу, перезапустить Visual Studio. Кроме того, SQLite for Universal Windows Platform можно скачать по ссылке SQLite for Universal Windows Platform, или по ссылке sqlite-uwp-3230100.vsix с сайта SQLite. После чего установить.

Создание проекта

Создадим для примера проект App1 (универсального приложения для Windows), для чего в поле «Проект» Visual Studio 2017 выберем: Создание проекта/Универсальное приложение Windows/Пустое приложение/:

Создание проекта

Задание в проекте ссылки на SQLite

Для создания в проекте App1 ссылки на SQLite необходимо:

1. В поле «Проект» Visual Studio 2017 выбрать вкладку Добавить ссылку:

Добавление ссылки

2. В открывшемся окне Менеджер ссылок отметить «галочкой» SQLite for Universal Windows Platform:

Менеджер ссылок

Установка обертки SQLitePCL

Для установки обертки SQLitePCL проделываем следующие шаги:

1. Заходим в меню Средства – Диспетчер пакетов NuGet – Управление пакетами NuGet для решения…:

Диспетчер пакетов

2. Находим по поиску SQLitePCL и устанавливаем:

Диспетчер пакетов - установка SQLitePCL

Настройка конфигурации проекта для сборки и развертывания

В диспетчере конфигураций (меню Сборка-Диспетчер конфигураций) устанавливаем настройку для Сборки и Развертывания:

Сборка и развертывание

Создание базы данных

В качестве примера рассмотрим создание простой базы данных для записей ФИО сотрудников «Primer.db», представляющей собой таблицу из трех полей с соответствующими названиями: фамилия, имя, отчество. Информация о SQL синтаксисе создания таблиц доступна по ссылке: SQLite Query Language: CREATE TABLE

Сначала необходимо добавить ссылку на пространство имен:

using SQLitePCL;

Создание базы данных

Затем создать таблицу базы данных «Primer.db», включающую поля «Фамилия», «Имя», «Отчество»: using (var conn = new SQLiteConnection("Primer.db"))

{

string sql = @"CREATE TABLE IF NOT EXISTS People (ID INTEGER NOT NULL PRIMARY KEY, Фамилия NVARCHAR(50), Имя NVARCHAR(50), Отчество NVARCHUAR(50));";

using (var statement = conn.Prepare(sql))

{

statement.Step();

}

}

Здесь с помощью выражения PRIMARY KEY задается столбец первичного ключа, он может быть только один у таблицы. Выражение NOT NULL запрещает наличие в данном столбце значений NULL.

Теперь добавим в таблицу для примера несколько записей.

Добавить запись в таблицу можно разными способами, например, простым запросом:

using (var statement = conn.Prepare("INSERT INTO People (Фамилия, Имя, Отчество) VALUES ('Иванов', 'Иван', 'Иванович')"))

                  {
                     statement.Step();
                  }

Можно использовать параметры:

 using (var statement = conn.Prepare("INSERT INTO People (Фамилия, Имя, Отчество) VALUES (?, ?, ?)")) 

{

                       statement.Bind(1, "Петров"); 
                        statement.Bind(2, "Петр"); 
                        statement.Bind(3, "Петрович"); 
                        statement.Step(); 

} Можно также вместо указания номера параметра использовать подстановку:

using (var statement = conn.Prepare("INSERT INTO People (Фамилия, Имя, Отчество) VALUES (@Фамилия, @Имя, @Отчество)")) {

                   <code> statement.Bind("@Фамилия", "Иванов");
                    statement.Bind("@Имя", "Петр");
                   statement.Bind("@Отчество", "Иванович");
                           statement.Step();

} Используем в программе для примера все три вышеперечисленных способа добавления записей в таблицу:

Добавление записей в таблицу

По результатам отработки программы будет сформирована база данных приложения, находящаяся на компьютере по адресу: %USERPROFILE%\AppData\Local\Packages\{PackageId}:

Акулова10.png
Сформированная база данных

Для работы с БД SQLite могут быть использованы различные инструменты, которые можно найти на официальном сайте инструменты для работы с SQLite. Для просмотра сформированной базы данных «Primer.db» воспользуемся бесплатным кроссплатформенным менеджером баз данных SQLite - SQLite Studio. Данная программа имеет поддержку русского языка и не требует установки под Windows (.zip архив).

SQlite Studio

Сформированная база данных «Primer.db» имеет вид:

База данных Primer.db
База данных Primer.db

Для просмотра созданной базы на мобильном устройстве необходима соответствующая программа. Воспользуемся, например, SqlitePrime (менеджер баз данных SQLite) для просмотра созданной базы данных на мобильном устройстве Android.

SQLitePrime

Вывод

SQLitePCL достаточно удобная и библиотека для работы с движком SQLite , так как она позволяет однообразно работать с ним в различных системах от Windows и до Android. Так же библиотека проста в освоении и последующей разработке с ее помощью. К плюсам проекта можно отнести:

  • Кроссплатформенная;
  • Открытый исходный код;
  • Много различного ПО для работы с библиотекой.

Из минусов стоит отметить:

  • Работает только под .NET Framework;
  • Слабая документация на английском языке.

Источники

  1. Portable Class Library for SQLite // CodePlex Archive URL: https://archive.codeplex.com/?p=sqlitepcl (дата обращения: 26.06.2018).
  2. Работа с базой данных SQLite с помощью обертки SQLitePCL // Habr URL: https://habr.com/post/265303/ (дата обращения: 26.06.2018).