Перейти к содержимому

Как установить sqlite в visual studio

  • автор:

Использование базы данных 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 для решения.

A screenshot of Visual Studio

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

Перейдите на вкладку «Обзор «, найдите пакет Microsoft.Data.SQLite и установите последнюю стабильную версию.

SQLite NuGet package

Добавление данных в базу данных 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 в C# и .NET

SQLite является одной из наиболее популярных СУБД. К ее преимуществам можно отнести портативность и мобильность. Для работы с базой данной SQLite не требуется наличие сервера, как в случае с MS SQL Server. И .NET предоставляет возможности для работы с SQLite в рамках приложения на языке C#.

Прежде всего для работы SQLite в C# необходимо установить через Nuget пакет Microsoft.Data.Sqlite :

Microsoft.Data.Sqlite и SQLite в C# и .NET

SqliteConnection

Для создания подключения к бд SQLite применяется класс SqliteConnection :

Он имеет два конструктора:

SqliteConnection() SqliteConnection(String)

Второй конструктор в качестве параметра принимает строку подключения.

Строка подключения для SQLite

Строка подключения представляет набор параметров в виде пар ключ=значение , которые отделяются друг от друга точкой с запятой. Рассмотрим, какие параметры может принимать строка подключения для SQLite.

Data Source

Указывает на путь к файлу базы данных. В качестве альтернативы можно использовать параметры DataSource (без пробела) и Filename . При этом можно определять абсолютные и относительные пути. Относительные пути рассматриваются относительно папки приложения.

Если этот параметр не указан, то SQLite создает временную базу данных на диске, которая удаляется при закрытии подключения.

Mode

Устанавливает режим подключения и может принимать следующие значения:

  • ReadWriteCreate : открывает базу данных для чтения и записи. Если база данных не существует, то она автоматически создается. Это режим применяется по умолчанию.
  • ReadWrite : открывает базу данных для чтения и записи.
  • ReadOnly : открывает базу данных только для чтения.
  • Memory : создает и открывает базу данных в памяти.
Cache

Устанавливает режим кэширования. Может принимать следующие значения:

  • Default : применяет режим по умолчанию используемой библиотеки SQLite. Этот режим применяется по умолчанию.
  • Private : для каждого подключения создается свой приватный кэш.
  • Shared : подключения используют один общий кэш.
Password

Устанавливает ключ шифрования. Если данный параметр установлен, то сразу после открытия подключения базе данных посылается команду PRAGMA key с ключом шифрования.

Foreign Keys

Указывает, будет ли база данных поддерживать внешние ключи. Может принимать следующие значения:

  • True : сразу после открытия подключения посылает команду PRAGMA foreign_keys = 1
  • False : сразу после открытия подключения посылает команду PRAGMA foreign_keys = 0

Если параметр не применяется, то по умолчанию ничего — никаких команд PRAGMA foreign_keys не посылается.

Recursive triggers

Указывает, будут ли поддерживаться рекурсивные триггеры. Может принимать два значения:

  • True : сразу после открытия подключения посылает команду PRAGMA recursive_triggers
  • False : не посылает команду PRAGMA recursive_triggers . Значение по умолчанию.
Определение строки подключения

В большинстве случаев мы сможем обойтись одним параметром — путем к базе данных:

string connectionString = "Data Source=usersdata.db";

Но естественно при необходимости можно применять и другие параметры, например, кэширование и режим:

string connectionString = "Data Source=usersdata3.db;Cache=Shared;Mode=ReadOnly;";

Подключение к базе данных

Для открытия подключения у объекта SqliteConnection вызывается метод Open() :

using System; using Microsoft.Data.Sqlite; namespace HelloApp < class Program < static void Main(string[] args) < using (var connection = new SqliteConnection("Data Source=usersdata.db")) < connection.Open(); >Console.Read(); > > >

Если база данных из строки подключения не существует, то при выполнении метода Open() она создается автоматически (если действует режим по умолчанию — ReadWriteCreate )

Причем в данном случае для открытия подключения применяется синхронный метод, а не асинхронный. Дело в том, что SQLite не поддерживает асинхронные операции чтения/записи. Поэтому при использовании асинхронных методов в ADO.NЕT при обащении к базе данных SQLite они будут выполняться синхронно.

Начало работы с SQLite в Visual Studio на C#: создание бд, таблиц, вставка записей и отображение

Для серьезных, высоконагруженных проектов с многопользовательской (или сетевой) поддержкой для работы с базами данных обычно используются сервера баз данных. Однако, для программ, которые будут работать на одном компьютере с относительно небольшим объемом информации, нередко применяют имитацию этих самих серверов – особые библиотеки. Одна из наиболее распространенных – это SQLite. Именно с SQLite мы и познакомимся в данном материале.

Итак, сначала качаем и подключаем к проекту библиотеку System.Data.SQLite.dll. Используем директивы using

using System.Data.SQLite; using System.IO; using System.Data;

И начинаем работать. Необходимые нам переменные:

private String dbFileName; private SQLiteConnection m_dbConn; private SQLiteCommand m_sqlCmd;

После загрузки формы (событие Load) инициализируем их:

m_dbConn = new SQLiteConnection(); m_sqlCmd = new SQLiteCommand(); Кидаем на форму textbox и кнопку (элемент button) и на событие клика по ней вставляем следующий код: dbFileName = textBox1.Text+".sqlite"; if (!File.Exists(dbFileName)) SQLiteConnection.CreateFile(dbFileName);

Чтобы появилась вкладка с кодом, необходимо в визуальном редакторе сделать двойной щелчок по самой кнопке (это если то не знает).

В первой строке мы получаем информацию из текстового поля (название каталога), а во второй, если нет файла с таким названием – создаем в текущем каталоге новую одноимённую базу данных с расширением sqlite.

Теперь научимся создавать таблицы в нашем файле базе данных. Для этого кидаем на форму еще одну кнопку и пишем её обработчик:

try < m_dbConn = new SQLiteConnection("Data Source=" + dbFileName + ";Version=3;"); m_dbConn.Open(); m_sqlCmd.Connection = m_dbConn; m_sqlCmd.CommandText = "CREATE TABLE IF NOT EXISTS Catalog (id INTEGER PRIMARY KEY AUTOINCREMENT, product TEXT, characteristics TEXT)"; m_sqlCmd.ExecuteNonQuery(); MessageBox.Show("Таблица успешно создана!"); >catch (SQLiteException ex)

Запустив программу и попробовав выполнить данный код, мы столкнемся с ошибкой:

Не удается загрузить DLL «SQLite.Interop.dll»: Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)

Решается просто. Добавим файл SQLite.Interop.dll в папку программы. И снова пробуем запустить. Если получилось, то теперь у нас есть таблица в базе данных sqllite с тремя полями: ид товара, его название, а также характеристики. Структура максимально проста, создана специально для примера, для обучения.

Далее научимся добавлять записи в нашу таблицу. Это также несложно. Добавим на форму еще пару текстбоксов и кнопку. Вот и обработчик данной кнопки:

if (m_dbConn.State != ConnectionState.Open) < dbFileName = "catalog1.sqlite"; m_dbConn = new SQLiteConnection("Data Source=" + dbFileName + ";Version=3;"); m_dbConn.Open(); m_sqlCmd.Connection = m_dbConn; >try < m_sqlCmd.CommandText = "INSERT INTO Catalog ('product', 'characteristics') values ('" + textBox2.Text + "' , '" + textBox3.Text + "')"; m_sqlCmd.ExecuteNonQuery(); >catch (SQLiteException ex) < MessageBox.Show("Error: " + ex.Message); >m_dbConn.Close();

Дальше нам надо научиться выводить сделанные записи (товары) – а то мало ли, вдруг на самом деле там ничего и не записывается? Для этого кидаем на форму датагрид с именем dgvViewer, создаем в нем три столбца (columns) с соответствующими названиями (id, product, characteristics) и еще одну кнопку с кодом:

DataTable dTable = new DataTable(); String sqlQuery; if (m_dbConn.State != ConnectionState.Open) < dbFileName = "catalog1.sqlite"; m_dbConn = new SQLiteConnection("Data Source=" + dbFileName + ";Version=3;"); m_dbConn.Open(); >try < sqlQuery = "SELECT * FROM Catalog"; SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlQuery, m_dbConn); adapter.Fill(dTable); if (dTable.Rows.Count >0) < dgvViewer.Rows.Clear(); for (int i = 0; i < dTable.Rows.Count; i++) dgvViewer.Rows.Add(dTable.Rows[i].ItemArray); >else MessageBox.Show("Database is empty"); > catch (SQLiteException ex) < MessageBox.Show("Error: " + ex.Message); >m_dbConn.Close();

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

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

статьи IT, Visual Studio, sqlite, си шарп, базы данных

Как подключить SQLite к Visual Studio C#

База данных является важной частью большинства современных приложений. Подключение удобной и легкой в использовании базы данных, такой как SQLite, к проекту Visual Studio C# может быть весьма полезным для хранения и обработки данных. SQLite — это высокоэффективная, встраиваемая база данных, которая работает без сервера и не требует больших ресурсов.

В этой статье мы расскажем вам, как подключить SQLite к вашему проекту Visual Studio C# с помощью пошаговой инструкции.

Шаг 1: Установка пакета NuGet

Первым шагом является установка пакета NuGet под названием «System.Data.SQLite», который предоставляет необходимые библиотеки и инструменты для работы с SQLite. Чтобы установить этот пакет, откройте свое решение в Visual Studio C#, нажмите правой кнопкой мыши на проект в обозревателе решений и выберите «Управление пакетами NuGet». В окне Управление пакетами NuGet найдите пакет «System.Data.SQLite», выберите его и нажмите «Установить».

Шаг 2: Создание SQLite Database

После установки пакета NuGet, необходимо создать файл базы данных SQLite. Для этого нажмите правой кнопкой мыши на проект в обозревателе решений, выберите «Добавить» и затем «Новый элемент». В диалоговом окне «Добавить новый элемент» найдите опцию «База данных веб-страницы SQLite» и выберите ее. Укажите имя файла базы данных и нажмите кнопку «Добавить». Это создаст файл базы данных SQLite с расширением .sqlite в вашем проекте.

Подготовка к подключению SQLite к Visual Studio C#

Перед тем, как начать подключать SQLite к Visual Studio C#, необходимо выполнить ряд предварительных шагов:

  1. Установить SQLite: загрузите дистрибутив SQLite с официального сайта и выполните его установку на вашем компьютере.
  2. Создать новый проект: откройте Visual Studio и создайте новый проект на языке C#.
  3. Добавить ссылку на библиотеку SQLite: щелкните правой кнопкой мыши на проекте в обозревателе решений, выберите «Управление пакетами NuGet» и установите пакет «System.Data.SQLite».

После выполнения этих шагов вы будете готовы к подключению SQLite к вашему проекту в Visual Studio C#. Далее вам потребуется написать код для работы с базой данных SQLite.

Установка SQLite и Visual Studio C#

Прежде чем начать подключать SQLite к Visual Studio C#, необходимо установить оба компонента на вашем компьютере. В этом разделе мы рассмотрим пошаговую инструкцию по установке SQLite и Visual Studio C#.

1. Установка SQLite

Перейдите на официальный сайт SQLite по адресу «https://www.sqlite.org» и скачайте последнюю версию SQLite для вашей операционной системы. Обычно это представляет собой простой файл с расширением «.exe».

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

После завершения установки SQLite, у вас появится возможность использовать SQLite в вашем приложении Visual Studio C#.

2. Установка Visual Studio C#

Перейдите на официальный сайт Microsoft по адресу «https://visualstudio.microsoft.com» и скачайте последнюю версию Visual Studio C#. Обычно это представляет собой установочный файл с расширением «.exe».

Запустите загруженный файл и следуйте инструкциям мастера установки для установки Visual Studio C# на вашем компьютере. Во время установки выберите опцию «Разработка классических приложений на C#» и убедитесь, что компоненты, связанные с разработкой приложений базы данных, установлены.

После завершения установки Visual Studio C#, у вас появится возможность создавать приложения на C# и использовать SQLite в вашем проекте.

Создание нового проекта в Visual Studio C#

Шаг 1: Откройте Visual Studio и выберите «Создать проект» в стартовом окне программы.

Шаг 2: В появившемся окне выберите шаблон «Приложение Windows Forms» и нажмите «Далее».

Шаг 3: Введите название вашего проекта в поле «Имя» и выберите путь для сохранения проекта. Затем нажмите «Создать».

Шаг 4: После создания проекта вам необходимо добавить ссылку на библиотеку SQLite. Для этого щёлкните правой кнопкой мыши на разделе «Ссылки» в обозревателе решений и выберите «Управление пакетами NuGet».

Шаг 5: В окне «Управление пакетами NuGet» введите «System.Data.SQLite» в поле поиска и нажмите «Установить» рядом с библиотекой «SQLite». После установки нажмите «Закрыть».

Шаг 6: Теперь вы можете создать новый файл кода для работы с базой данных SQLite. Щёлкните правой кнопкой мыши на проекте в обозревателе решений, выберите «Добавить» и затем «Новый элемент».

Шаг 7: В появившемся окне выберите «Класс» и нажмите «Добавить».

Шаг 8: Измените имя класса на «Database.cs» и нажмите «ОК».

Шаг 9: Теперь вы можете начать работать с SQLite в вашем проекте, используя класс «Database.cs». Добавьте необходимые методы и функции для работы с базой данных.

Поздравляю! Вы успешно создали новый проект в Visual Studio C# и подключили библиотеку SQLite для работы с базой данных.

Установка NuGet-пакета для работы с SQLite

Шаги для установки NuGet-пакета для работы с SQLite в Visual Studio C#:

  1. Откройте проект в Visual Studio C#.
  2. Щелкните правой кнопкой мыши по названию проекта в окне «Solution Explorer».
  3. Выберите пункт меню «Manage NuGet Packages».
  4. В открывшемся окне «NuGet Package Manager» выберите вкладку «Browse».
  5. Введите в поле поиска «System.Data.SQLite.Core».
  6. Найдите пакет «System.Data.SQLite.Core» и выберите его.
  7. Нажмите кнопку «Install» рядом с пакетом.
  8. Подтвердите установку пакета, нажав кнопку «OK».

После установки NuGet-пакета для работы с SQLite, вы будете готовы использовать его функциональность в вашем проекте в Visual Studio C#.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *