Использование базы данных SQLite в приложении Windows
Вы можете использовать SQLite для хранения и извлечения данных в упрощенной базе данных на устройстве пользователя. В этом руководстве показано, как это сделать в приложениях пакета SDK для приложений для приложений windows.
Некоторые преимущества использования SQLite для локального хранения данных
✔️ SQLite является упрощенным и автономным. Это библиотека кода без других зависимых компонентов. Ее не требуется настраивать.
✔️ Тут нет сервера базы данных. Клиент и сервер работают в одном процессе.
✔️ SQLite находится на общедоступном домене, поэтому вы можете свободно использовать и распространять ее в вашем приложении.
✔️ SQLite работает на разных платформах и архитектурах.
Подробнее о SQLite см. здесь.
Выбор слоя абстрагирования
Рекомендуется использовать Entity Framework Core или библиотеку SQLite с открытым кодом, созданную корпорацией Майкрософт.
Entity Framework Core
Entity Framework (EF) — это объектно-реляционный модуль сопоставления, позволяющий разработчикам работать с реляционными данными с помощью объектов, специализированных для доменов. Если вы уже использовали эту платформу для работы с данными в других приложениях .NET, вы можете использовать тот же код в приложении пакета SDK для приложений Windows, и он будет работать с соответствующими изменениями в строка подключения.
Чтобы испытать ее, см. раздел Начало работы с EF Core.
Библиотеке SQLite
Библиотека Microsoft.Data.Sqlite реализует интерфейсы в пространстве имен System.Data.Common. Майкрософт активно поддерживает эти реализации и предоставляет интуитивно понятную оболочку для низкоуровневых собственных API-интерфейсов SQLite.
В остальных разделах этого руководства приведены инструкции по работе с этой библиотекой.
Настройка решения для использования библиотеки Microsoft.Data.SQlite
Мы начнем с базового проекта пакета SDK для приложений Windows, а затем установим пакет NuGet SQLite.
Все поддерживаемые версии Windows поддерживают SQLite, поэтому приложению не нужно упаковать библиотеки SQLite. Вместо этого ваше приложение может использовать версию SQLite, которая поставляется вместе с Windows. Это обеспечивает следующие преимущества.
✔️ Уменьшает размер приложения, так как не требуется скачивать двоичную библиотеку SQLite, а затем упаковывать ее в качестве части приложения.
✔️ Отсутствие необходимости в принудительной передаче новой версии вашего приложения пользователям, если SQLite опубликует важные исправления ошибок и уязвимостей безопасности в SQLite. Версия Windows SQLite обслуживается корпорацией Майкрософт совместно с SQLite.org.
✔️ Загрузка приложения может быть быстрее, так как, скорее всего, версия SDK-пакета SQLite будет уже загружена в память.
Начнем с добавления класса в проект с именем DataAccess. Если вы планируете предоставить общий доступ к логике доступа к данным с другим клиентским кодом, можно использовать проект библиотеки классов .NET для хранения кода доступа к данным, но мы не будем использовать его в нашем примере.
Щелкните правой кнопкой мыши решение, а затем нажмите кнопку Управление пакетами NuGet для решения.

На этом этапе у вас есть выбор. Можно использовать версию SQLite, которая входит в состав Windows, или если по какой-либо причине вы хотите использовать конкретную версию SQLite, можно добавить библиотеку SQLite в пакет. Мы будем использовать версию SQLite, которая входит в состав Windows.
Перейдите на вкладку «Обзор «, найдите пакет Microsoft.Data.SQLite и установите последнюю стабильную версию.

Добавление данных в базу данных SQLite и их извлечение
Мы выполним следующие действия.
1️⃣ Подготовка класса доступа к данным.
2️⃣ Инициализация базы данных SQLite.
3️⃣ Вставка данных в базу данных SQLite.
4️⃣ Извлечение данных из базы данных SQLite.
5️⃣ Добавление базового пользовательского интерфейса.
Подготовка класса доступа к данным
DataAccess Откройте класс в проекте и сделайте этот класс статическим.
Хотя в нашем примере код доступа к данным помещается в статический класс, это вариант разработки и является полностью необязательным.
public static class DataAccess
Добавьте следующие using инструкции в начало этого файла.
using Microsoft.Data.Sqlite; using System.Collections.Generic;
Инициализация базы данных SQLite
Добавьте метод в DataAccess класс, который инициализирует базу данных SQLite.
public async static void InitializeDatabase() < await ApplicationData.Current.LocalFolder .CreateFileAsync("sqliteSample.db", CreationCollisionOption.OpenIfExists); string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "sqliteSample.db"); using (var db = new SqliteConnection($"Filename=")) < db.Open(); string tableCommand = "CREATE TABLE IF NOT " + "EXISTS MyTable (Primary_Key INTEGER PRIMARY KEY, " + "Text_Entry NVARCHAR(2048) NULL)"; var createTable = new SqliteCommand(tableCommand, db); createTable.ExecuteReader(); >>
Приведенный выше код, использующий ApplicationData элементы, будет работать только для упакованных приложений, работающих в контейнере приложений. Все остальные приложения Windows должны обращаться к ApplicationData членам через класс ApplicationDataManager .
Этот код создает базу данных SQLite и сохраняет ее в локальном хранилище данных приложения.
В этом примере мы используем имя базы данных sqlliteSample.db , но вы можете использовать любое имя при условии, что оно будет использоваться во всех объектах SqliteConnection, экземпляры которых необходимо создать. В рабочем приложении сведения о подключении, такие как имя файла базы данных, должны храниться в конфигурации приложения, а не жестко закодированы (см. статью «Добавление Конфигурация приложений Azure с помощью visual Studio Подключение ed Services«).
В конструкторе файла App.xaml.cs проекта вызовите InitializeDatabase метод DataAccess класса. Это обеспечит создание или открытие базы данных при каждом запуске приложения.
public App()
Вставка данных в базу данных SQLite
Добавьте метод в DataAccess класс, который вставляет данные в базу данных SQLite. Этот код использует параметры в запросе для предотвращения атак путем внедрения кода SQL.
public static void AddData(string inputText) < string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "sqliteSample.db"); using (var db = new SqliteConnection($"Filename=")) < db.Open(); var insertCommand = new SqliteCommand(); insertCommand.Connection = db; // Use parameterized query to prevent SQL injection attacks insertCommand.CommandText = "INSERT INTO MyTable VALUES (NULL, @Entry);"; insertCommand.Parameters.AddWithValue("@Entry", inputText); insertCommand.ExecuteReader(); >>
Извлечение данных из базы данных SQLite
Добавьте метод, который получает все строки данных из таблицы в базе данных SQLite.
public static List GetData() < var entries = new List(); string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "sqliteSample.db"); using (var db = new SqliteConnection($"Filename=")) < db.Open(); var selectCommand = new SqliteCommand ("SELECT Text_Entry from MyTable", db); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) < entries.Add(query.GetString(0)); >> return entries; >
Метод Read считывает строки возвращаемых данных. Возвращается true , если есть строки слева, в противном случае возвращается false .
Метод GetString возвращает значение конкретного столбца в виде строки. Он принимает целое число, представляющее собой отсчитываемый от нуля порядковый номер столбца необходимых данных. Можно использовать похожие методы, такие как GetDataTime и GetBoolean . Выберите метод в зависимости от типа данных в столбце.
Порядковый номер параметра не так важен в этом примере, так как мы выбираем все записи в одном столбце. Тем не менее, если несколько столбцов являются частью запроса, используйте порядковое значение для получения столбца, из которого требуется извлечь данные.
Добавление базового пользовательского интерфейса
В файле MainWindow.xaml проекта добавьте следующий код XAML.
Этот базовый пользовательский интерфейс предоставляет пользователю поле TextBox , которое можно использовать для ввода строки, которую мы добавим в базу данных SQLite. Мы подключимся Button в этом пользовательском интерфейсе к обработчику событий, который будет получать данные из базы данных SQLite и затем отображать их в ListView .
В файле MainWindow.xaml.cs добавьте следующий обработчик. Это метод, который мы связали с кнопкой Click событие Button в пользовательском интерфейсе.
private void AddData(object sender, RoutedEventArgs e)
Мы также хотим убедиться, что все существующие данные загружаются при запуске приложения. Добавьте строку кода в MainWindow конструктор для вызова GetData() .
public MainWindow()
Вот и все. Изучите Microsoft.Data.Sqlite чтобы узнать, что еще можно сделать с вашей базой данных SQLite. Ознакомьтесь со ссылками ниже, чтобы узнать о других способах использования данных в приложениях Windows.
Следующие шаги
Подключение приложения непосредственно к базе данных SQL Server
Совместное использование кода между разными приложениями на различных платформах
Добавление страниц с основными и подробными данными с помощью серверов Azure SQL
См. статью Customer Orders Database sample (Пример базы данных заказов клиентов).
Установка и настройка SQLite
SQLite — это компактная программная библиотека или база данных, интегрированная во множество приложений. Одной из отличительных особенностей SQLite является отсутствие клиент-серверной структуры.
Пользоваться SQLite очень легко. СУБД можно интегрировать в приложение без использования серверного программного обеспечения. Затем приложение автоматически получает комплексные функции базы данных. Все данные размещаются в одном компактном файле.
С SQLite данные могут храниться в разных форматах. Возможные типы данных, которые можно хранить в СУБД:
INTEGER: включает в себя все целочисленные значения.
REAL: используется для хранения чисел с плавающей точкой.
TEXT: этот тип данных содержит весь текстовый контент.
BLOB: используется для хранения двоичных данных, таких как изображения или файлы.
NULL: этот тип данных позволяет отображать нулевые значения в SQLite.
Таким образом, в SQLite могут храниться все распространенные типы данных.
Инструкция: как установить SQLite
— Установка SQLite на Windows
Вы можете установить SQLite на Windows, выполнив следующие действия:
- На официальном сайте SQLite найдите раздел «Precompiled Binaries for Windows» и загрузите zip-файл:

- Создайте папку C:\SQLite и разархивируйте туда файл.
- Вы увидите три файла: дважды щелкните файл sqlite3, чтобы открыть программное обеспечение.
- SQLite откроется в командной строке, и вы сможете выполнить любые команды.
— Установка SQLite на Linux
SQLite можно установить в Linux с помощью следующих команд.
Войдите через SSH на ваш Linux-сервер и выполните соответствующую для вашего дистрибутива команду:
Debian / Ubuntu
sudo apt-get install sqlite3
CentOS / Fedora / RedHat
sudo yum install sqlite3
После установки вы можете запускать SQLite с помощью команды sqlite3.
Создаем базу данных в SQLite
На Windows: вам нужно открыть командную строку и ввести sqlite3.
На Linux: вам нужно открыть терминал и также ввести sqlite3.
Для создания новой базы данных SQLite выполните команду, указав имя базы данных (замените «mydatabase» на желаемое имя):
Вы создали новую базу данных с именем «mydatabase.db» в текущем рабочем каталоге. Если база данных с указанным именем уже существует, то она откроется.
Создание таблицы в SQLite
Чтобы создать таблицы в SQLite, используйте команду CREATE TABLE. Вот пример создания таблицы с указанием структуры столбцов:
CREATE TABLE TableName (
column1_name datatype1 constraints,
column2_name datatype2 constraints,
Давайте разберем эту команду:
CREATE TABLE TableName: эта часть команды создает новую таблицу с указанным именем (TableName замените на имя вашей таблицы).
(column1_name datatype1 constraints, column2_name datatype2 constraints, . ): здесь вы определяете структуру таблицы. Для каждого столбца вы указываете его имя (column1_name и т. д.), тип данных (datatype1, datatype2 и т. д.) и ограничения (если необходимо).
Просмотр таблиц SQLite
Для просмотра таблиц в базе данных SQLite можно воспользоваться командой SELECT. Для этого откройте терминал или инструмент для работы с SQLite.
Подключитесь к базе данных SQLite с помощью команды:
Где mydatabase.db — это имя вашей базы данных.
Затем выполните SQL-запрос, чтобы узнать список таблиц. Используйте следующую команду:
SELECT name FROM sqlite_master WHERE type=’table’;
Первая команда может использоваться в SQLite клиенте, вторая — в большинстве SQLite-сред.
Вы получите список всех таблиц в вашей базе данных SQLite.
Как пользоваться SQLiteStudio
Инструмент SQLiteStudio — бесплатное графическое приложение с открытым исходным кодом для управления базами данных SQLite. С SQLiteStudio вы можете создавать, изменять и запрашивать базы данных без необходимости писать команды SQL вручную.
Скачать и установить SQLiteStudio можно с официально сайта.
С помощью графического приложения SQLiteStudio вы можете создавать и открывать базы данных, управлять ими, создавать таблицы, создавать дизайн таблиц, импортировать и экспортировать данные в различных форматах с помощью соответствующих инструментов, выполнять SQL-запросы, просматривать и редактировать схемы базы данных, управлять индексами, работать с триггерами и представлениями.
Эти функции позволяют разработчикам и администраторам баз данных эффективно управлять базами данных SQLite.
(8).png)
Для надежного хранения данных выбирайте VDS/VPS-хостинг на Windows в RU-CENTER с удобной контрольной панелью управления. Мы предоставляем мощное оборудование, круглосуточную техническую поддержку, надежные серверные SSD-диски, безлимитный трафик и выделенный IPv4-адрес.
Как установить расширение для SQLite на Windows?
Установить расширение в SQLite, если готового файла библиотеки найти не удалось, как оказалось, не так просто. Полного и подробного гайда я так и не нашёл, так что пришлось по крупицам собирать информацию, и теперь для таких же странствующих в поисках ответов, как и я, вот 10 шагов для решения поставленной задачи.
Отслеживать
задан 15 июн 2022 в 20:11
157 10 10 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вот полное руководство по установке расширения для SQLite на Windows:
- Установите MinGW с GCC
- Скачайте .c файл желаемого расширения (например, uuid.c)
- Скачайте с этой страницыSource Code и Precompiled Binaries for Windows
- Поместите файлы из «sqlite-dll-win64-x64-XXXXXXX.zip» (или win32) и «sqlite-tools-win32-x86-XXXXXXX.zip» в папку System32
- Поместите желаемый файл uuid.c и файлы из «sqlite-amalgamation-XXXXXXX.zip» в любую папку по своему усмотрению
- Запустите CMD и перейдите в директорию с файлом uuid.c
- Введите в консоль gcc -g -shared uuid.c -o uuid.so
- Если кто-либо (даже вы сами) говорит вам, что на Windows вам следует использовать расширение .dll, плюньте ему в лицо
- Переместите полученный uuid.so файл в папку System32
- Запустите CMD ещё раз и введите команду .load uuid ИЛИ введите SELECT load_extension(‘uuid’) в качестве SQL-скрипта
На этом всё!
Отслеживать
ответ дан 15 июн 2022 в 20:11
157 10 10 бронзовых знаков
Вы серьезно предлагаете вместо скачивания библиотеки ставить mingw и gcc и считаете что это проще чем скачать файл и закинуть в системную папку?)
15 июн 2022 в 20:22
Если библиотеку легко найти в уже скомпилированном виде, то этот вариант очевиден и даже в упоминании не нуждается, так что не нужно, пожалуйста, язвить
SQLite – Установка
SQLite славится своей отличной функцией нулевой конфигурации, что означает, что не требуется сложной настройки или администрирования. Эта глава проведет вас через процесс настройки SQLite в Windows, Linux и Mac OS X.
Установите SQLite на Windows
- Шаг 1 – Перейдите на страницу загрузки SQLite и загрузите предварительно скомпилированные двоичные файлы из раздела Windows.
- Шаг 2 – Загрузите архивы sqlite-shell-win32 – *. Zip и sqlite-dll-win32 – *. Zip.
- Шаг 3 – Создайте папку C: \> sqlite и разархивируйте два выше заархивированных файла в этой папке, которые предоставят вам файлы sqlite3.def, sqlite3.dll и sqlite3.exe.
- Шаг 4. Добавьте C: \> sqlite в переменную среды PATH и, наконец, перейдите в командную строку и введите команду sqlite3, которая должна отобразить следующий результат.
Шаг 1 – Перейдите на страницу загрузки SQLite и загрузите предварительно скомпилированные двоичные файлы из раздела Windows.
Шаг 2 – Загрузите архивы sqlite-shell-win32 – *. Zip и sqlite-dll-win32 – *. Zip.
Шаг 3 – Создайте папку C: \> sqlite и разархивируйте два выше заархивированных файла в этой папке, которые предоставят вам файлы sqlite3.def, sqlite3.dll и sqlite3.exe.
Шаг 4. Добавьте C: \> sqlite в переменную среды PATH и, наконец, перейдите в командную строку и введите команду sqlite3, которая должна отобразить следующий результат.
C:\>sqlite3 SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
Установите SQLite на Linux
Сегодня почти все версии ОС Linux поставляются с SQLite. Поэтому вы просто вводите следующую команду, чтобы проверить, установлен ли на вашем компьютере SQLite.
$sqlite3 SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
Если вы не видите приведенный выше результат, это означает, что на вашем компьютере с Linux не установлен SQLite. Ниже приведены следующие шаги для установки SQLite:
- Шаг 1 – Перейдите на страницу загрузки SQLite и загрузите sqlite-autoconf – *. Tar.gz из раздела исходного кода.
- Шаг 2 – Запустите следующую команду –
Шаг 1 – Перейдите на страницу загрузки SQLite и загрузите sqlite-autoconf – *. Tar.gz из раздела исходного кода.
Шаг 2 – Запустите следующую команду –
$tar xvfz sqlite-autoconf-3071502.tar.gz $cd sqlite-autoconf-3071502 $./configure --prefix=/usr/local $make $make install
Приведенная выше команда завершится установкой SQLite на вашем компьютере с Linux. Что вы можете проверить, как описано выше.
Установите SQLite на Mac OS X
Хотя последняя версия Mac OS X предустановлена с SQLite, но если у вас нет доступной установки, просто выполните следующие шаги:
- Шаг 1 – Перейдите на страницу загрузки SQLite и загрузите sqlite-autoconf – *. Tar.gz из раздела исходного кода.
- Шаг 2 – Запустите следующую команду –
Шаг 1 – Перейдите на страницу загрузки SQLite и загрузите sqlite-autoconf – *. Tar.gz из раздела исходного кода.
Шаг 2 – Запустите следующую команду –
$tar xvfz sqlite-autoconf-3071502.tar.gz $cd sqlite-autoconf-3071502 $./configure --prefix=/usr/local $make $make install
Описанная выше процедура завершится установкой SQLite на компьютер Mac OS X. Что вы можете проверить, введя следующую команду –
$sqlite3 SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
Наконец, у вас есть командная строка SQLite, где вы можете вводить команды SQLite для ваших упражнений.