- C windows forms sqlite
- SQLite в WPF
- Работа с SQLite
- Как работать с SQLite в C#
- Использование базы данных 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
C windows forms sqlite
Для серьезных, высоконагруженных проектов с многопользовательской (или сетевой) поддержкой для работы с базами данных обычно используются сервера баз данных. Однако, для программ, которые будут работать на одном компьютере с относительно небольшим объемом информации, нередко применяют имитацию этих самих серверов – особые библиотеки. Одна из наиболее распространенных – это SQLite. Именно с SQLite мы и познакомимся в данном материале.
Итак, сначала качаем и подключаем к проекту библиотеку System.Data.SQLite.dll. Используем директивы using
И начинаем работать. Необходимые нам переменные:
После загрузки формы (событие Load) инициализируем их:
Чтобы появилась вкладка с кодом, необходимо в визуальном редакторе сделать двойной щелчок по самой кнопке (это если то не знает).
В первой строке мы получаем информацию из текстового поля (название каталога), а во второй, если нет файла с таким названием – создаем в текущем каталоге новую одноимённую базу данных с расширением sqlite.
Теперь научимся создавать таблицы в нашем файле базе данных. Для этого кидаем на форму еще одну кнопку и пишем её обработчик:
Запустив программу и попробовав выполнить данный код, мы столкнемся с ошибкой:
Не удается загрузить DLL «SQLite.Interop.dll»: Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)
Решается просто. Добавим файл SQLite.Interop.dll в папку программы. И снова пробуем запустить. Если получилось, то теперь у нас есть таблица в базе данных sqllite с тремя полями: ид товара, его название, а также характеристики. Структура максимально проста, создана специально для примера, для обучения.
Далее научимся добавлять записи в нашу таблицу. Это также несложно. Добавим на форму еще пару текстбоксов и кнопку. Вот и обработчик данной кнопки:
Дальше нам надо научиться выводить сделанные записи (товары) – а то мало ли, вдруг на самом деле там ничего и не записывается? Для этого кидаем на форму датагрид с именем dgvViewer, создаем в нем три столбца (columns) с соответствующими названиями (id, product, characteristics) и еще одну кнопку с кодом:
Несмотря на неказистый внешний вид, наше приложение уже представляет собой рабочий вариант программы, которую можно использовать, к примеру, как сборник записей. В следующих статьях мы уже более подробно будем разбирать данную тему.
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
статьи IT, Visual Studio, sqlite, си шарп, базы данных
SQLite в WPF
Работа с SQLite
SQLite является одной из наиболее используемых систем управления базами данных. Главным преимуществом SQLite является то, что для базы данных не нужно сервера. База данных представляет собой обычный локальный файл, который мы можем перемещать вместе с главным файлом приложения. Кроме того, для запросов к базе данных мы можем использовать стандартные выражения языка SQL, которые равным образом с некоторыми изменениями могут применяться и в других СУБД как Oracle, MS SQL Server, MySQL, Postgres и т.д.
Еще одним преимуществом является широкое распространение SQLite — область применения охватывает множество платфрм и технологий: WPF, Windows Forms, UWP, Xamarin, Android, iOS и т.д. И если мы, скажем, захотим создать копию приложения для ОС Android, то базу данных мы можем перенести в новое приложение такой, как она определена для приложения на WPF.
Итак, создадим новый проект WPF, который назовем SQLiteApp. В первую очередь нам надо добавить функциональность SQLite в проект. Для этого мы можем загрузить нужный нам пакет со страницы https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki, и инсталлятор установить все необходимые библиотеки в глобальный кэш сборок (GAC), откуда мы можем выбирать их для проекта.
Либо мы можем добавить SQLite в проект через пакетный менеджер Nuget. Итак, выберем этот способ, перейдем к Nuget, нажав в проекте правой кнопкой на узел References и выбрав в открывшемся контекстном меню пункт Manage NuGet Packages. :
В окне менеджера Nuget введем в окно поиска «SQLite», и менеджер отобразит нам ряд результатов. Из них нам надо установить пакет под названием System.Data.SqlClient :
Данный пакет зависит от трех других пакетов, которые также будут установлены:
Вместе с последним пакетом также будет добавлен Entity Framework. Таким образом, мы сможем работать с базой данных SQLite через ORM-инструмент Entity Framework.
В отличие от работы с MS SQL Server по отношению к SQLite EF 6 не поддерживает автоматическое создание базы данных и ее таблиц через Code First в соответствии со структурой моделей приложения. И в этом случае нам самим надо создавать баз данных и ее таблицы.
Для работы с SQLite установим специальный инструмент — DB Browser for SQLite
Откроем DB Browser for SQLite и для создания новой базы данных нажмем на кнопку New Database . В оттрывшемся окне выберем место расположения файла базы данных и укажем для нее имя, например, mobiles .
Далее нам будет предложено добавить в базу данных таблицы. Определим для таблицы имя «Phones» и добавим четыре столбца Id, Title, Company, Price, как на скриншоте:
Стоит обратить внимание, что столбец Id определен здесь как первичный ключ.
После добавления таблицы мы сможем добавить вручную через DB Browser for SQLite какие-либо данные.
И далее добавим созданную нами базу данных в наш проект. После добавления для файла базы данных установим опцию «Copy if newer», чтобы файл копировался при компиляции в каталог приложения:
Для поддержки SQLite необходимо изменить конфигурацию проекта, которая располагается в файле App.config . После добавления пакетов данный файл также автоматически изменяется. Однако все же нам необходимо внести в него некоторые изменения. Так, изменим его следующим образом:
Прежде всего здесь определена строка подключения:
Так как созданный нами файл базы данных называется mobiles (к которому DB Browser for SQLite по умолчанию добавляет расширение db ), то в качестве источника данных здесь указан именно «mobiles.db».
Другой важный момент — установка в узле
провайдера, который будет использоваться для подключения:
Теперь определим в проекте класс, объекты которого будут храниться в базе данных:
При ручном определении модели надо учитывать, что эта модель должна соответствовать таблице из БД. Так, в бд мы создали таблицу Phones, в которой есть целочисленные столбцы Id и Price, соответственно в классе Phone определены свойства Id и Price, представляющие целые числа. То же самое со строковыми столбцами Title и Company, которые по имени и типу данных соответствуют свойствам Title и Company в классе Phone.
И еще один важный момент: Entity Framework по умолчанию применяет некоторые условности при наименовании моделей и таблиц в БД. Так, название таблицы должно представлять название модели во множественном числе в соответствии с правилами английского языка. Так, у нас таблица называется Phones, а класс Phone. То есть условности соблюдены.
Для взаимодействия с базой данных нам нужен еще один комопнент — контекст данных. Добавим в проект новый класс, который назовем ApplicationContext:
Класс контекста должен наследоваться от DbContext. В конструкторе класса в конструктор базового класса передаем название подключения. В данном случае название должно совпадать с названием подключения из App.config.
И для взаимодействия с таблицей Phones здесь также определено одноименное свойство Phones .
Теперь все готово для работы с базой данных. Стандартный набор операций по работе с БД включает получение объектов, добавление, изменение и удаление. Для получения и просмотра списка объектов из бд мы будем использовать главное окно. А для добавления и изменения создадим новое окно.
Итак, добавим в проект новое окно, которое назовем PhoneWindow.xaml . В итоге общая конфигурация проекта у нас будет выглядеть следующим образом:
В коде xaml у страницы PhoneWindow.xaml определим следующее содержимое:
Здесь определены три поля ввода для каждого свойства модели Phone и две кнопки для сохранения и отмены.
В коде PhoneWindow.xaml.cs определим контекст для этой страницы:
Данное окно будет диалоговым. Через конструктор оно будет получать объект Phone, который устанавливается в качестве контекста данных.
В коде xaml у главного окна MainWindow определим вывод списка телефонов и набор кнопок для управления этим списком:
В коде C# у этого окна пропишем обработчики кнопок, через которые будем взаимодействовать с базой данных SQLite:
Выражение db.Phones.Load() загружает данные из таблицы Phones в локальный кэш контекста данных. И затем список загруженных объектов устанавливается в качестве контекста данных:
Для добавления вызывается метод Add:
Для удаления — метод Remove:
При изменении мы передаем в PhoneWindow копию выбранного объекта. Если мы передавали бы сам выделенный объект, то все изменения на форме автоматически синхронизировались со списком, и не было бы смысла в кнопке отмены.
После получения измененного объекта мы находим его в базе данных и устанавливаем у него состояние Modified, после чего сохраняем все изменения:
Запустим приложение. И добавим какой нибудь объект:
И после добавления объект отобразится в списке:
Как работать с SQLite в C#
Один из читателей моего сайта попросил в комментариях к статье «Как сохранять изображения в базу данных MS SQL и извлекать изображения из базы данных» написать статью по работе с SQLite. Отдохнув в отпуске и написав несколько статей по другой тематике решил написать статью и по работе с SQLite в C#.
Рассмотрим основные методы работы с базой данных SQLite: SELECT, CREATE, INSERT, UPDATE, DELETE. Чтобы материал не был обыденным мы рассмотрим добавление изображений и файлов в базу данных SQLite, а также их чтение из базы данных.
Сразу хочу сказать, что синтаксис похож на запросы MS SQL, а также подключение к базе данных происходит аналогично. Поэтому если вы работаете в C# с базами MS SQL, то вы прямо сейчас уже сможете самостоятельно работать с SQLite немного изменив свои запросы в коде.
Для работы с SQLite нам необходимо к проекту подключить пять NuGet пакетов, которые показаны на картинке:
Однако достаточно подключить один пакет, который выделен на картинке, и остальные пакеты подтянутся и установятся автоматически.
Прописываем для работы с SQLite:
Дополнительно к проекту подключаем:
Далее по тексту будет код без методов, который вы прописываете у себя в нужных вам методах.
Создание базы данных SQLite
Создание таблицы в базе данных SQLite
Создадим таблицу, с которой будем в дальнейшем работать.
Добавление изображения в базу данных SQLite
Извлечение изображения из базы данных SQLite
Добавление любого файла в базу данных SQLite
Извлечение файла из базы данных SQLite
Комментариев в коде в начале будет минимум, так как здесь код аналогичный коду извлечения изображения из базы данных, а вот вторая часть кода отличается.
С помощью кода добавления и извлечения файла можно писать и считывать из базы данных любые файлы включая изображения.
Обновление записи в базе данных SQLite
Удаление записи в базе данных SQLite
Заключение
Как видим есть похожий код (DELETE и UPDATE), а есть отличающийся (SELECT сравните с другими).
На этом всё. На основании приведённых примеров вы сможете освоить работу с SQLite в C#.
Прикладываю проект с программой, которая может производить все описанные выше операции.
Использование базы данных 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