Как установить sqlite в visual studio
Перейти к содержимому

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

  • автор:

Общие сведения о Microsoft.Data.Sqlite

Microsoft.Data.Sqlite — это упрощенный поставщик ADO.NET для SQLite. На основе этой библиотеки построен поставщик Entity Framework Core для SQLite. Тем не менее, ее также можно использовать независимо или с другими библиотеками доступа к данным.

Установка

Последняя стабильная версия доступна на сайте NuGet.

  • Интерфейс командной строки .NET Core
  • Visual Studio
dotnet add package Microsoft.Data.Sqlite 
Install-Package Microsoft.Data.Sqlite 

Использование

В этой библиотеке реализуются общие абстракции ADO.NET для подключений, команд, модулей чтения данных и других элементов.

using (var connection = new SqliteConnection("Data Source=hello.db")) < connection.Open(); var command = connection.CreateCommand(); command.CommandText = @" SELECT name FROM user WHERE "; command.Parameters.AddWithValue("$id", id); using (var reader = command.ExecuteReader()) < while (reader.Read()) < var name = reader.GetString(0); Console.WriteLine($"Hello, !"); > > > 

См. также

  • Строки подключения
  • Справочник по интерфейсам API
  • Синтаксис SQL

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Отправить и просмотреть отзыв по

Использование SQLite в проектах Visual Studio

Вы можете найти много ресурсов в Интернете, написав об использовании SQLite с универсальная платформа Windows (UWP), но где вы найдете SQLite в Visual Studio? В этом видео показано, где получить набор средств SQLite, как установить пакет SQLite в проекте Visual Studio, а также код внутри записи в базу данных SQLite.

Код для этого видео находится по ссылке ниже.

Вы можете найти много ресурсов в Интернете, написав об использовании SQLite с универсальная платформа Windows (UWP), но где вы найдете SQLite в Visual Studio? В этом видео показано, где получить набор средств SQLite, как установить пакет SQLite в проекте Visual Studio, а также код внутри записи в базу данных SQLite.

Код для этого видео находится по ссылке ниже.

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, си шарп, базы данных

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

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

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