В настоящее время многие организации используют информационные системы. Для работы на такой системе требуются настройки приложения и дополнительные ресурсы, а также умение человека работать с этим программным обеспечением. Используя интерфейс, организованный к базе данных можно значительно облегчить задачу пользователям информационных систем. Поэтому организация такого интерфейса посредством языков программирования является сегодня актуальной задачей.
В данной статье рассмотрим организацию интерфейса посредством языка программирования C# к базе данных, созданной инструментальными средствами MS Access.
Сайт Microsoft для разработчиков Microsoft Developer Network предоставляет справочник по C# в свободном доступе [1]. На сайте CyberForum.ru проводилось обсуждение самых частых проблем при программировании на C# [2]. Работу с Access на C# разъяснял в своём видео Itist [3]. Проблемой разработки интерфейса к базе данных занимались такие исследователи как Л.А. Плахотная и А.С. Якимов
[4], Р.И. Баженов и др. [5-7]. Г. Шилдт написал полный справочник по C#, где он в подробностях объяснил синтаксис, основные понятия языка, а также проиллюстрировал все свои знания на примерах [8]. А.М.Герасимов в своей диссертации исследовал взаимодействие пользователя с базой данных и анализировал проблему разработки эффективного интерфейса [9]. В своей статье «О технологии организации web-интерфейса к базе данных» исследователи Л.А. Плахотная и А.С. Винокуров рассмотрели реализацию web-интерфейса к базе данных, созданной инструментальными средствами MS Access [10]. В.В. Варкентин и Т.А. Барбасова в статье «Разработка программного обеспечения автоматизированных систем управления технологическими процессами с использованием Visual Studio и базы данных Oracle» [11] рассматривали организацию связи программного обеспечения автоматизированных систем управления технологическими процессами в среде Visual Studio на языке С# с СУБД Oracle. В книге В. Понамарева [12] рассматриваются особенности разработки приложений в среде Visual Studio на языке C#, приведены множество схем, рисунков, а также примеров.
Для реализации нашей задачи будем использовать программное обеспечение Visual C# 2010 Express от Microsoft. Устанавливать соединение с базой данных будем с помощью технологии OLE DB.
Создадим новый проект Приложение Windows Forms. Новую форму назовем “Заказы и продажи товаров”. Создадим четыре кнопки: три кнопки для таблиц “Заказы и продажи”, “Покупатели”, “Товары” и одна кнопка для выхода из приложения. Получится следующая форма (см. рис. 1).
Рисунок 1 – Внешний вид главной кнопочной формы.
Создадим новую форму и назовем её «Таблица “Заказы и продажи”». Заполним форму полями из таблицы “Заказы и продажи”, а также добавим поле “Фамилия” из таблицы “Покупатели”. Создадим панель навигации, в которую добавим кнопки для перехода по записям, кнопки для добавления новой записи, удаления текущей записи и печати отчета. Получится следующая форма (см. рис. 2).
Рисунок 2 – Внешний вид формы для таблицы “Заказы и продажи”.
Теперь отредактируем код формы для таблицы “Заказы и продажи”. Для создания соединения с базой данных через OLE DB нам потребуется дополнительная библиотека – System.Data.OleDb. Также для создания отчета и печати нам потребуются библиотеки: Microsoft.Office.Interop.Excel (для использования данной библиотеки потребуется указать ссылку) и System.Drawing.Printing.
Для начала работы с базой данных, необходимо создать экземпляры классов OleDbConnection, OleDbCommand, OleDbDataReader. При загрузке формы проинициализируем соединение с помощью ConnectionString.
Создадим два метода: findFamily (см. рис. 3), который поможет отыскать фамилию, соответствующую текущему заказу, и loaddata (см. рис. 4), который загрузит данные из таблиц в форму. Также для обработки ошибок, если таковые произойдут, заключим код метода loaddata в конструкцию try-catch-finally.
Рисунок 3 – Программный код для метода findFamily.
Рисунок 4 – Программный код для метода loaddata.
Переменная n отвечает за текущий номер заказа. Метод loaddata загружает данные из таблицы, используя переменную n. Соответственно, чтобы осуществить переход на одну запись вперед, нужно к n прибавить 1, чтобы перейти на одну запись назад, от n отнять 1 и т.д.
Для удаления текущей записи придется создать два метода: deleteValue, собственно для удаления записи, и patch для исправления номера заказа (см. рис. 5).
Рисунок 5 – Программный код для методов deleteValue и patch.
Введем новые переменные, которые понадобятся для печати отчета (см. рис. 6).
Рисунок 6 – Переменные для печати отчетов.
Метод uploadData будет обращаться к базе данных с помощью запросов и записывать значения полей в ячейки Excel. Запишем код для кнопки “Печать отчета” (см. рис. 7).
Рисунок 7 – Программный код для кнопки “Печать отчета”.
Создадим новую форму и назовем её “Новый заказ”.
Добавим новый метод AddValue, который будет добавлять новую запись в таблицу и обращаться к форме “Заказы и продажи” для загрузки данных в форму. Метод AddValue ничем не отличается от удаления записи – вместо команды DELETE необходимо использовать команду INSERT. Выполнение всех методов прописывается в соответствующих кнопках.
На этом разработка программы заканчивается. Формы и программный код для таблиц “Покупатели” и “Товары” создаются аналогичным способом. В данной статье рассмотрено создание формы только для таблицы “Заказы и продажи”.
Теперь подробно рассмотрим работу программы. При запуске открывается главная кнопочная форма (см. рис. 8).
Рисунок 8 – Главная кнопочная форма.
Щелкая по кнопке “Заказы и продажи” мы переходим к форме «Таблица “Заказы и продажи”», где можем просмотреть все записи (см. рис. 9).
Рисунок 9 – Форма для таблицы “Заказы и продажи”.
При нажатии кнопки добавления новой записи (кнопка со знаком “+”) откроется новая форма “Новый заказ”. Заполнив поля и нажав кнопку “ОК” программа добавит новую запись в базу данных (см. рис. 10).
Рисунок 10 – Добавление нового заказа.
Кнопка удаления (кнопка со знаком “Х”) удалит текущую запись.
При нажатии кнопки “Печать отчета” программа на основе заранее подготовленного шаблона создаст отчет в Excel, куда запишет всю информацию заказов из базы данных, и выведет его на печать (см. рис. 11).
Рисунок 11 – Сформированный отчет в Excel на основе шаблона.
Таким образом, в статье была рассмотрена возможность взаимодействия с базой данных, посредством интуитивно понятного интерфейса. Было установлено подключение к заранее созданной базе данных посредством OLE DB, созданы SQL запросы на добавление, изменение и удаление записей базы данных, а также осуществлен вывод отчета в Excel с последующей его печатью. Данное программное обеспечение может использоваться в различных предприятиях и организациях для ведения учета заказов, покупателей, товаров и т.п., и как методический пример для студентов.
Библиографический список
-
Справочник по C# // Microsoft Developer Network. URL: https://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx.
-
Ответы на 7 самых частых вопроса по WinForms // CyberForum.ru – форум программистов и сисадминов. URL: http://www.cyberforum.ru/windows-forms/thread110436.html
-
C# работа с Access // YouTube. URL: http://www.youtube.com/watch?v=Aiu6ncsedx8
-
Плахотная Л.А., Якимов А.С. Организация web-интерфейса поисковых запросов к базе данных // Современные научные исследования и инновации. 2014. № 5-1 (37). С. 25.
-
Баженов Р.И., Никитин А.В. О разработке информационной системы по контролю над пролонгацией страховых договоров // Современные научные исследования и инновации. 2014. № 6-1 (38). С. 25.
-
Баженов Р.И., Кузнецова Я.И. О разработке информационной системы по учету благотворительной помощи в малой организации // Современная техника и технологии. 2014. № 6 (34). С. 10.
-
Баженов Р.И., Семёнова Д.М. О разработке информационной системы учета деятельности членов общественной молодежной палаты // Современные научные исследования и инновации. 2014. № 6-1 (38). С. 26.
-
Шилдт Г. Полный справочник по C#.. М.: Вильямс, 2004. 752 с.
-
Герасимов А.М. Интеллектуализация интерфейса взаимодействия пользователя с базой данных физических эффектов: дис. … канд. тех. наук: 05.13.12 . Волгоград, 2008.
-
Плахотная Л.А., Винокуров А.С. О технологии организации web-интерфейса к базе данных // Молодой ученый. 2014. №7. С. 53-57.
-
Варкентин В.В., Барбасова Т.А. Разработка программного обеспечения автоматизированных систем управления технологическими процессами с использованием Visual Studio и базы данных Oracle // Современные наукоемкие технологии. 2013. №8-1. С. 78-80.
-
Понамарев В. Программирование на C++/C# в Visual Studio .NET 2003. СПб.: БХВ-Петербург, 2004. 352 с.