MS Access и C# – работаем с базой данных из программы Windows Forms

Рассмотрим выполнение запросов SELECT, INSERT, UPDATE и DELETE к базе данных Microsoft Access из программы на языке C#, на примере проекта Windows Forms в Visual Studio. В конце статьи вы найдете исходники, а также видеоурок по данной теме.

Проектирование базы данных MS Access

Создадим в Microsoft Access базу данных Workers (рабочие) с одной таблицей Worker (рабочий).

Таблица содержит следующие столбцы:

  • w_id (идентификатор записи) – тип данных Счетчик;
  • w_name (имя) – тип данных Короткий текст;
  • w_position (должность) – тип данных Короткий текст;
  • w_salary (зарплата) – тип данных Числовой.

Схема базы данных MS Access для проекта на C#

Для корректной работы с базой данных MS Access с помощью языка C#, ее необходимо сохранить в формате с расширением .mdb

Сохранение БД MS Access в нужном формате для работы с ней на C#

Создание проекта Windows Forms в Visual Studio на языке C#

Создадим проект Windows Forms на C# и поместим на форму следующие компоненты:

TextBox, ListBox и пять кнопок Button.

Расположение элементов управления на форме Windows Forms для выполнения запросов к MS Access на C#

На макете формы в Visual Studio выполним двойные щелчки левой кнопкой мыши на всех кнопках, создав тем самым обработчики событий нажатия для каждой кнопки.

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

Обработчик события закрытия формы - в нем будем закрывать соединение с БД Access

Файл с БД поместим в каталог \bin\Debug в папке с проектом.

Написание кода на C# для выполнения запросов к MS Access

Добавим в класс формы строковое поле string – строку подключения к БД. В строке подключения в значении параметра Data Source указывается путь к файлу с базой данных.

Есть два варианта строки с различными провайдерами подключения. Если с первой строкой программа не будет работать – закомментируйте ее, а вторую раскомментируйте.

Далее добавим поле класса типа OleDbConnection. Экземпляр данного класса понадобится для установления соединения с базой данных MS Access.

В конструкторе класса создадим экземпляр OleDbConnection и установим соединение с БД. Т.е. при запуске программы будет устанавливаться соединение с Access.

В обработчике события закрытия формы добавим код, закрывающий соединение с базой данных. Таким образом при выходе из программы соединение с БД будет закрываться.

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

При нажатии кнопки SELECT2 будет выполняться запрос на получение многострочных данных из нескольких столбцов (по сути таблицы). Данные выводятся в ListBox.

Далее запрос вставки данных (INSERT) в MS Access на C#:

Метод ExecuteNonQuery() класса OleDbCommand выполняет запрос и возвращает целое число типа int – количество строк затронутых выполняемым запросом. Данный метод подходит для запросов вставки INSERT, обновления UPDATE и удаления DELETE. Т.е. для тех, которые не возвращают данные.

Запрос обновления данных UPDATE:

Пример SQL-запроса удаления данных (DELETE) из БД Access с помощью языка C#:

Скачать исходник программы из данного урока можно, нажав на кнопку ниже. Программа написана в среде разработки Visual Studio.

Скачать исходник

 

 

Более подробное объяснение темы выполнения запросов из программы на C# к базе данных Microsoft Access доступно в видеоуроке, представленном ниже.

Видеоурок по теме работы с БД MS Access из программы на языке C#

MS Access и C# – работаем с базой данных из программы Windows Forms
5 (100%) 8 votes




Поделиться в соц. сетях:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">