Всем доброго дня, сегодня в этой статье, я бы хотел рассказать вам о WPF и MS Access, а также их взаимодействии друг с другом. Мало кто знает, но MS Access довольно хорошо дружит с WPF, но для начала думаю стоит рассказать, что из себя представляет то и другое.
Windows Presentation Foundation — один из компонентов ядра .NET Framework, который позволяет разработчикам создавать богатые, различные Windows приложения.
Microsoft Office Access или просто Microsoft Access — реляционная система управления базами данных корпорации Microsoft. Входит в состав пакета Microsoft Office. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных.

Microsoft Access 2016
Создание базы данных и внутренних таблиц
Создаём БД и переходим к созданию и настройке таблиц, а именно переходим в режим конструктора, предварительно указав наименование базы данных.

Создание таблицы в MS Access
В моей базе данных будет использоваться три столбца: Код - он же уникальный идентификатор, логин пользователя и пароль пользователя.

Результат создания таблицы в MS Access
Внесём одну из записей с которой будем осуществлять работу.

Добавление записи в MS Access
На этом создание базы данных законченно.
Разработка приложения и подключение к БД
Переходим к приложению WPF и у главной формы (MainWindow.xaml.cs) прописываем функцию подключения к базе данных:
public string connection = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\student.SIGMA3\Documents\Visual Studio 2017\Projects\WpfApp1\WpfApp1.accdb"; // путь к базе данных
public OleDbDataReader Select(string selectSQL) // функция подключения к базе данных и обработка запросов
{
OleDbConnection connect = new OleDbConnection(connection); // подключаемся к базе данных
connect.Open(); // открываем базу данных
OleDbCommand cmd = new OleDbCommand(selectSQL, connect); // создаём запрос
OleDbDataReader reader = cmd.ExecuteReader(); // получаем данные
return reader; // возвращаем
}

Создание функции для работы с MS Access
Важно отметить что весь текст у будет отмечен красным а при подключении будут возникать ошибки. Вся проблема в том, что нужно добавить несколько библиотек, которые позволяют работать с базой данных, для этого, нужно нажать ПКМ по подчёркнутому красной линией элементу и выбрать пункт «Быстрые действия и рефакторинг...», после из предложенных действий выбрать первый вариант который добавляет библиотеку: using System.Data.OleDb;

Подключение библиотек для работы с MS Access
Переменная connection содержит в себе текстовую информацию, а именно: тип подключения, и путь подключения. На этом подключение к MS Access завершено, всё что нужно сделать: вызвать функцию в нужном вам месте и обработать запрос.
Выполнение запросов и обработка информации
Для того что бы работать с базой данных MS Access из приложения WPF необходимо знать четыре основных запроса на языке SQL:
- SELECT (вывод данных из таблицы);
- INSERT (вставить данные в таблицу);
- UPDATE (обновить данные в таблице);
- DESTROY (удалить данные из таблицы).
Важно помнить, что только SELECT возвращает данные, получить данные из других запросов не возможно.
Для того чтобы сделать запрос SELECT и обработать пришедшие данные, после инициализации компонентов вставляем следующий код:
OleDbDataReader read = Select("SELECT * FROM dt_user"); // запрашиваем данные
while (read.Read()) { // обрабатываем данные
MessageBox.Show("Код: " + read.GetValue(0) + " Логин: " + read.GetValue(1) + " Пароль: " + read.GetValue(2)); // выводим данные
}

Результат запроса SELECT
Чтобы вставить новую запись, нужно использовать следующий код:
Select("INSERT INTO dt_user([Логин], [Пароль]) VALUES ('test2', 'test2')"); // вставляем строку в БД

Результат запроса INSERT
Теперь нужно обновить пароль, изменив «test2» на «qwerty123». Для этого используется всё тот же метод, передающий SQL запрос.
Select("UPDATE dt_user SET [Пароль]='qwerty123' WHERE [Логин]='test2'");

Результат запроса UPDATE
Чтобы осуществить удаление записи из таблицы, используется следующий код:
Select("DELETE FROM dt_user WHERE [Пароль] = 'qwerty123';");

Результат запроса DELETE
Таким образом можно выполнять запросы к базе данных MS SQL Server.
Так же вы можете использовать MS Access в качестве локальной базы данных, а MS SQL основной. Статьи по подключению и выполнению запросов в MS SQL можно найти на нашем сайте.