Разработка базы данных каталога библиотечной литературы

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,3 Мб
  • Опубликовано:
    2012-12-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка базы данных каталога библиотечной литературы

Введение


Внедрение электронно-вычислительных машин, современных средств переработки и передачи информации послужило началом нового процесса, называемым информатизацией общества. Широкое распространение получил научно-технический прогресс. В настоящее время одним из направлений научно-технического прогресса является компьютеризация практически всех сфер человеческой деятельности.

Сейчас компьютер является неотъемлемой частью работы людей. Компьютеры используются в школах и университетах. Они помогают систематизации полученные данных, как в рабочих целях, так и в учебных.

В последнее время компьютерные системы всё чаще используются для создания электронных каталогов. Данное направление весьма перспективно в связи с тем, что такие каталоги занимают очень мало физического пространства (как правило, размер ограничен размером вычислительной машины), а моментальный поиск нужных элементов делает такие среды незаменимыми в повседневном использовании.

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

Задачей является получить прикладную программу для просмотра и управления базой данных с каталогом книг. Для управления базой данных необходимо использовать систему управления базами данных (СУБД).

Для разработки приложения используется среда программирования Microsoft Visual Studio 2010. База данных создаётся на основе программного комплекса Microsoft SQL Server 2008. Написание приложения производится при помощи языка визуального программирования C#.

1. Теоретическая часть

 

.1 Описание предметной области


Современная библиотека - это огромнейший каталог литературы самого различного характера, жанра и направления. В её ходят дети и взрослые, студенты и школьники, аспиранты и доктора наук. В связи с этим, есть необходимость в строгой каталогизации для ускорения поиска по книжным полкам. В этом случае на помощь приходят современные технологии. Персональный компьютер позволяет хранить огромное количество информации, при этом обеспечивая быстрый поиск. Для библиотеки, база данных со списком всей имеющейся литературы - незаменимая вещь. Она позволит любому посетителю в считанные минуты найти интересующую его книгу, будь то это художественный роман, фантастическая повести или научный труд.

Для поиска книг обычно используются следующие данные:

-    Жанр

-       Название;

-       Автор;

-       Год издания;

-       Издательство;

-       Международный стандартный номер книги (ISBN);

-       Количество страниц.

Международный стандартный номер книги или ISBN (англ. International Standard Book Number) - уникальный номер книжного издания, необходимый для распространения книги в торговых сетях и автоматизации работы с изданием. Наряду с индексами ББК, УДК и авторским знаком, ISBN является частью так называемого издательского пакета. Стандарт был разработан в Великобритании в 1966 году на базе 9-значного Стандартного номера книг (англ. Standard Book Numbering (SBN) code) Гордона Фостера (англ. Gordon Foster). В 1970 году с небольшим изменением был принят как международный стандарт ISO 2108 . С 1 января 2007 года введен новый стандарт ISBN - 13-значный, совпадающий со штрих кодом. Существует также подобный стандарт ISSN (International Standard Serial Number) для периодических изданий.

В Беларуси ISBN используется - с 1993 года[1].

 

.2 Постановка задачи


В данной курсовой работе необходимо разработать приложение для создания, управления и просмотра базы данных библиотечной литературы.

Программа должна выполнять следующие функции:

·    подключение к базе данных;

·        просмотр списка жанров и книг, связанных с ними;

·        поиск в базе данных по трём критериям: автор, издательство, название книги;

·        добавление новой книги в каталог;

·        удаление записи с информацией о книге;

·        добавление и удаление жанров в список.

Приложение должно иметь интуитивно понятный интерфейс и удобный вид.

Для написания приложения был выбран язык C# в составе среды разработки программного обеспечения Microsoft Visual Studio 2010. Этот современный программный комплекс позволяет разрабатывать сложные приложения с графическим интерфейсом, при этом помогает автоматизировать некоторые процессы проектирования визуального вида, дав программисту возможность углубиться в разработку функционала приложения.

Язык C# - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java [2].

Для управления базой данных было решено использовать SQL Server 2008, поскольку это решение наиболее подходит для задач, связанных с хранением данных на персональном компьютере.

Microsoft SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка [3].

Microsoft SQL Server обеспечивает удобство и надёжность управления базами данных. Такие системы хранения обеспечивают высокую скорость доступа к данным. Server предназначен для упрощенного развертывания и быстрого создания прототипов; его можно получить бесплатно и свободно распространять в составе приложений. SQL Server естественным образом интегрируется с другими продуктами, входящими в серверную инфраструктуру.

 

.3 Описание алгоритмов


Учитывая тот факт, что целью курсового проекта было создание приложения для просмотра, редактирования и управления базой данных, алгоритмы должны выполнять ряд функций:

-    подключение к выбранной базе данных;

-       чтение и вывод на экран данных из таблиц базы данных;

-       добавление новых записей;

-       удаление уже существующих записей;

-       поиск и выборка соответствующих элементов из таблиц базы данных.

Словесный алгоритм работы приложения может быть представлен в виде следующей последовательности действий:

)     Запуск программы. Если есть подключение к базе данных по умолчанию переход к пункту 3. Если нет доступа к базе - переход к пункту 2.

2)      Окно подключения к базе данных. По нажатию кнопки «Подключится» переход к пункту 3.

)        Основное окно приложения «Электронный каталог библиотеки».

3.1) После нажатия кнопки «Добавить книгу» переход к пункту 4.

.2) После нажатия кнопки «Удалить книгу» переход к пункту 5.

.3) После нажатия кнопки «Экспорт в Excel» переход к пункту 6.

.4) После выполнения команды «Правка-Добавить жанр» переход к пункту 7.

.5) После выполнения команды «Правка-Удалить жанр» переход к пункту 8.

.6) После заполнения поля в блоке «Поиск по базе», выбора критерия поиска и нажатия кнопки «Искать» будет произведен поиск и вывод результатов. Переход к пункту 3.

)     Окно добавления новой книги в базу. После заполнения всех полей и нажатия кнопки «Добавить в каталог» новая книга помещается в базу. Переход к пункту 3.

5)      Окно удаления книги из базы. После заполнения поля данных и нажатия кнопки «Удалить из каталога» книга удаляется из базы. Переход к пункту 3.

)        Открывается приложение Microsoft Excel, содержащий экспортированные данные. Переход к пункту 3.

)        Окно добавления жанра в список. После заполнения поля данных и нажатия кнопки «Добавить в список» новый жанр будет добавлен в базу. Переход к пункту 3.

)        Окно удаления жанра из списка. После выбора из списка требуемого жанра и нажатия кнопки «Удалить из списка» жанр будет удален из базы. Переход к пункту 3.

2. Практическая часть

 

.1 Схема классов


Схема классов позволяет в графическом режиме отобразить основные функции программы в виде структурной модели. Также схема классов может отображать взаимосвязи между различными классами в рамках одного приложения.

Для обеспечения подключения к базе данных служит класс Form1, представленный на рисунке 2.1. Исходный код на языке C# находится в приложении.

Рисунок 2.1 - Класс Form1

Для обеспечения работоспособности всего функционала основной формы приложения служит класс Form2, представленный на рисунке 2.2. Исходный код на языке C# находится в приложении.

Рисунок 2.2 - Класс Form2

Для обеспечения работы добавления новой книги в базу данных служит класс Form3, представленный на рисунке 2.3. Исходный код на языке C# находится в приложении.

Рисунок 2.3 - Класс Form3

Для обеспечения работы удаления книги из базы данных служит класс Form4, представленный на рисунке 2.4. Исходный код на языке C# находится в приложении.

Рисунок 2.4 - Класс Form4

Для обеспечения работы добавления нового жанра в список служит класс Form5, представленный на рисунке 2.5. Исходный код на языке C# находится в приложении.

Рисунок 2.5 - Класс Form5

Для обеспечения работы удаления жанра из списка служит класс Form6, представленный на рисунке 2.6. Исходный код на языке C# находится в приложении.

Рисунок 2.6 - Класс Form6

Диаграмма классов, представленная на рисунке 2.7, отображает схему существующих классов в рамках базы данных разрабатываемого приложения.

Рисунок 2.7 - Диаграмма классов, связанных с базой данных

В создаваемой базе данных присутствуют две таблицы:

-    Жанр (название Genre)

-       Книги (название Books).

Названиям таблиц в базе данных были присвоены имена, состоящие из латинских букв для предотвращения проблем с различными кодировками.

Таблица, изображённая на рисунке 2.8, отображает взаимосвязи между таблицами в рамках одной базы данных. Связь происходит по внешнему ключу между столбцами с названием «Жанр» каждой таблицы.

Рисунок 2.8 - Схема связей между таблицами базы данных

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

 

.2 Таблица процедур обработки событий


Для удобства пользования, приложение разбито на 7 форм.

На первой форме, называемой «Подключение» и указанной в проекте под именем Form1.cs происходит выбор базы данных и подключение к выбранной базе. События, которые можно вызвать из первой формы, указаны в таблице 2.1.

Таблица 2.1 - События, вызываемые на форме «Подключение к базе данных»

Событие

Возникает

Вызывает

button1_Click

Возникает при нажатии на кнопку «Подключиться»

Подключение к выбранной базе данных

button2_Click

Возникает при нажатии на кнопку «Выход»

Прекращает работу приложения

button3_Click

Возникает при нажатии на кнопку «Обзор»

Открывает диалоговое окно выбора базы данных на диске


Вторая форма является основной и называется «Электронный каталог библиотеки» и появляется при успешном подключении к базе данных. В проекте она отмечена как файл Form2.cs. События, вызываемые из неё, указаны в таблице 2.2.

Таблица 2.2 - События, вызываемые на форме «Подключение к базе данных»

Событие

Возникает

Вызывает

dataGridView1_CellClick

Возникает при клике по жанру в блоке «Жаны книг»

Отображение всех книг, связанных с выбранным жанром в блоке «Результаты поиска»

button1_Click

Возникает при нажатии на кнопку «Искать» после введения искомого слова в соответствующем поле

Производит поиск по выбранному слову или группе слов в таблице со списком книг

button2_Click

Возникает при нажатии на кнопку «Добавить книгу»

Открывает окно добавления новой книги в базу

button3_Click

Возникает при нажатии на кнопку «Удалить книгу»

Открывает окно удаления книги из базы

button4_Click

Возникает при нажатии на кнопку «Экспорт в Excel»

Вызывает процедуру экспорта результатов поиска книг в документ Microsoft Excel

добавитьToolStripMenuItem_Click

Возникает при нажатии на пункт «Правка-Добавить книгу» в главном меню программы

Открывает окно добавления новой книги в базу

добавитьЖанрToolStripMenuItem_Click

Возникает при нажатии на пункт «Правка-Добавить жанр» в главном меню программы

Открывает окно добавления нового жанра в список

удалитьКнигуToolStripMenuItem_Click

Возникает при нажатии на пункт «Правка-Удалить книгу» в главном меню программы

Открывает окно удаления книги из базы

удалитьЖанрToolStripMenuItem_Click

Возникает при нажатии на пункт «Правка-Удалить жанр» в главном меню программы

Открывает окно удаления жанра из списка

экспортРезультатовВExcelToolStripMenuItem1_ Click

Возникает при нажатии на пункт «Файл- Экспорт результатов в Excel» в главном меню программы

Вызывает процедуру экспорта результатов поиска книг в документ Microsoft Excel

выходToolStripMenuItem_Click

Возникает при нажатии на пункт «Файл-Выход» в главном меню программы

Закрывает приложение

оПрограммеToolStripMenuItem_Click

Возникает при нажатии на пункт «Справка-О программе» в главном меню программы

Открывает окно информации о программе


В таблице 2.3 находится описание событий, вызываемых из формы «Добавление в базу новой книги», называемой в проекте Form3.cs.

Таблица 2.3 - События, вызываемые на форме «Добавление в базу новой книги»

Событие

Возникает

Вызывает

button1_Click

Возникает при нажатии кнопки «Добавить в каталог»

Производит попытку добавить новую книгу в базу данных и в случае успеха, выдаёт сообщение об успешном добавлении, а при ошибке - сообщение об ошибке

button2_Click

Возникает при нажатии на кнопку «Отмена»

Закрывает форму добавления новой книги в базу данных

В таблице 2.4 следует описание событий, вызываемых из формы «Удаление книги из базы», называемой в проекте Form4.cs.

Таблица 2.4 - События, вызываемые на форме «Удаление книги из базы»

Событие

Возникает

Вызывает

button1_Click

При нажатии кнопки «Удалить из каталога»

Производит попытку удаления книги из базы данных и в случае успеха, выдаёт сообщение об успешном удалении, а при ошибке - сообщение об ошибке

Button2_Click

Возникает при нажатии на кнопку «Отмена»

Закрывает форму удаления книги из базы данных

В таблице 2.5 следует описание событий, вызываемых из формы «Добавление нового жанра», называемой в проекте Form5.cs.

Таблица 2.5 - События, вызываемые на форме «Добавление нового жанра»

Событие

Возникает

Вызывает

button1_Click

При нажатии кнопки «Добавить в список»

Производит попытку добавления нового жанра в базу данных и в случае успеха, выдаёт сообщение об успешном добавлении, а при ошибке - сообщение об ошибке

button2_Click

Возникает при нажатии на кнопку «Отмена»

Закрывает форму добавления нового жанра в базу данных


В таблице 2.6 следует описание событий, вызываемых из формы «Удаление существующего жанра», называемой в проекте Form6.cs.

Таблица 2.6 - События, вызываемые на форме «Удаление существующего жанра»

Событие

Возникает

Вызывает

button1_Click

При нажатии кнопки «Удалить из списка»

Производит попытку удаления жанра из базы данных и в случае успеха, выдаёт сообщение об успешном удалении, а при ошибке - сообщение об ошибке

button2_Click

Возникает при нажатии на кнопку «Отмена»

Закрывает форму удаления жанра из базы данных


Форма «О программе» несёт чисто информационный характер и позволяет ознакомиться с программой и контактными данными автора. Список событий, вызываемых в форме «О программе», называемой в проекте Form7.cs приведён в таблице 2.7.

Таблица 2.7 - События, вызываемые на форме «О программе»

Событие

Возникает

Вызывает

button1_Click

Возникает при нажатии на кнопку «Закрыть»

Закрывает форму «О программе»


2.3 Руководство пользователя


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

·    Процессор Intel или AMD с частотой 800 MHz;

·        Оперативная память: 128 MB;

·        30 MB на жёстком диске;

·        Операционная система Windows XP или выше;

·        Установленный Microsoft Excel 2003 или выше.

Кроме этого на компьютере обязательно должно быть установлено следующее программное обеспечение:

·    Microsoft .NET Framework 3.5;

·        Microsoft SQL Server 2008.

При успешном запуске программы появляется основное окно приложения, изображённое на рисунке 2.9.

Рисунок 2.9 - Основное окно приложения

По умолчанию база данных называется Books.mdf и расположена в одной директории с исполняемым файлом. Если по какой либо причине файл базы данных не найден, пользователю будет отображено окно подключения вместо основного окна приложения, оно изображено на рисунке 2.10.

Рисунок 2.10 - Окно подключения к базе

По нажатию кнопки «Обзор» открывается диалоговое окно выбора директории, где находится файл с базой данных. После ее указания нужно нажать кнопку «Подключится», для подключения к базе данных. Если нажать кнопку «Отмена», произойдет завершение работы приложения.

Просмотр списка книг по выбранному жанру осуществляется кликом левой кнопкой мыши по интересующему жанру в блоке «Жаны книг», как это показано на рисунке 2.11.

Рисунок 2.11 -Окно приложения со списком книг по жанру «Учебное пособие»

Программа позволяет производить поиск книг в базе данных по следующим критериям:

-    по автору;

-       по издательству;

-       по названию.

На рисунке 2.12 показан пример поиска в базе данных по критерию поиска «По издательству».

Рисунок 2.12 - Окно приложения со списком книг найденных по запросу «Питер»

Для добавления новой книги в базу данных, нужно нажать кнопку «Добавить книгу», либо выполнить команду меню «Правка - Добавить книгу». В этом случае откроется новое окно для добавления книги. Для ее добавления, необходимо выбрать жанр из списка, а затем заполнить все поля. Пример заполнения показан на рисунке 2.13.

Рисунок 2.13 - Окно добавления новой книги в базу

После заполнения всех полей необходимо нажать на кнопку «Добавить в каталог». В случае успешного добавления появится сообщение, показанное на рисунке 2.14.

Рисунок 2.14 - Сообщение об успешном добавлении книги в базу

Для удаления книги из базы данных, нужно нажать кнопку «Удалить книгу», либо выполнить команду меню «Правка - Удалить книгу». В этом случае откроется новое окно удаления книги. Для ее удаления, необходимо в поле ввести код издания удаляемой книги. Пример заполнения показан на рисунке 2.15.

Рисунок 2.15 - Окно удаления книги из базы

После ввода необходимо нажать на кнопку «Удалить из каталога». В случае успешного удаления появится сообщение, показанное на рисунке 2.16.

Рисунок 2.16 - Сообщение об успешном удалении книги из базы

Для добавления нового жанра в список, нужно выполнить команду меню «Правка - Добавить жанр». В этом случае откроется новое окно для добавления жанра. Для добавления, необходимо ввести его название в поле. Пример заполнения показан на рисунке 2.17.

Рисунок 2.17 - Окно добавления нового жанра в список

приложение база библиотечный литература

После ввода необходимо нажать на кнопку «Добавить в список». В случае успешного добавления появится сообщение, показанное на рисунке 2.18.

Рисунок 2.18 - Сообщение об успешном добавлении жанра в список

Для удаления жанра из списка, нужно выполнить команду меню «Правка - Удалить жанр». В этом случае откроется новое окно удаления жанра. Для его удаления, необходимо в списке выбрать название удаляемого жанра. Пример показан на рисунке 2.19.

Рисунок 2.19 - Окно удаления жанра из списка

После выбора необходимо нажать на кнопку «Удалить из списка». В случае успешного удаления появится сообщение, показанное на рисунке 2.20.

Рисунок 2.20 - Сообщение об успешном удалении жанра из списка

В программе есть возможность экстпорта результатов поиска в документ Microcoft Excel. Для ее использования нужно нажать кнопку «Экспорт Excel» или выполнить команду меню «Файл - Экспорт результатов в Excel». В этом случае откроется документ с экспортированными книгами. Пример показан на рисунке 2.21.

Рисунок 2.21 - Экспортированные результаты поиска в документ Excel

Приложение имеет собственную справочную систему, запустить которую можно, воспользовавшись пунктом «Справка» в главном меню. В справочном материале описаны все возможности программы.

Заключение


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

Обычные каталоги занимают достаточно много физического пространства, которое часто ограничено, и это доставляет неудобства. Электронные каталоги позволяют его освободить, так как такие каталоги ограничены ЭВМ, на которой они находятся. Также их бесспорным преимуществом является быстрота поиска, по какому либо критерием.

В ходе данного курсового проекта было разработано полноценное приложение для хранения и каталогизации списка книг библиотеки. По окончании работы были получены следующие результаты:

-    разработано приложение на языке Visual C# для работы со списками книг, хранящимися в базе данных;

-       реализованы возможности просмотра, добавления, удаления, поиска записей;

-       разработана справочная система приложения;

-       приобретены и закреплены навыки работы с реляционными базами данных на основе системы управления базами данных SQL Server.

Таким образом, можно сделать вывод, что цели и задачи курсового проекта выполнены в полном объеме.

Список использованных источников


1.   Википедия, - [Электронный ресурс]. Режим доступа: http:// ru.wikipedia.org

2.   Троелсен Э. - Язык программирования C# 2010 и платформа .NET 4.0, 5 издание - М.: Вильямс, 2010. - 1392 с.

3.      Роберт Э. Уолтерс, Майкл Коулс - SQL Server 2008: ускоренный курс для профессионалов - М.: Вильямс, 2008. - С. 768.

4.      Евсеева Н.О., Шамшев А.Б. - Работа с базами данных на языке C#. Технология ADO.NET - М.: Ульяновск УлГТУ, 2009 - 170 с.

Приложение

.CS:

using System;System.Windows.Forms;System.Data.SqlClient;EKB

{partial class Form1 : Form

{Form1()

{();

}path;void Form1_Load(object sender, EventArgs e)

{.ControlBox = false;= Environment.CurrentDirectory + @"\"+ textBox1.Text.ToString() + ".mdf";.frm1 = new Form1();.frm1 = this;.frm1.Visible = false;ToolTip1 = new ToolTip();.AutoPopDelay = 3000;.ShowAlways = true;.SetToolTip(this.button1, "Нажмите для подключения к базе данных");.SetToolTip(this.button2, "Нажмите здесь, чтобы закрыть программу");.SetToolTip(this.button3, "Нажмите здесь, чтобы указать путь к базе данных вручную. Она должна находиться в папке с программой!");.SetToolTip(this.textBox1, "Введите название базы данных");.Filter = "Файлы базы данных sql server (*.mdf)|*.mdf|All files (*.*)|*.*";.Title = "Открытие файла базы данных";.ConnectionString = @"Server=.\SQLEXPRESS;AttachDbFilename=" + path + ";Integrated Security=true";.Conn = new SqlConnection(cls.ConnectionString);

{.Conn.Open();.frm1.Visible = false;.frm2 = new Form2();.frm2.ShowDialog();

}

{.Show("Нет соединения с Базой Данных.\n\nSQL Server не доступен.\nВозможно не правильно указали имя базы данных.\nЛибо у Вас стоит более поздний сервер. Для данного проложения нужен SQL Server 2005", "Ошибка подключение к базе данных", MessageBoxButtons.OK, MessageBoxIcon.Error);.frm1.Visible = true;

}

}void button1_Click(object sender, EventArgs e) //подключение

{.ConnectionString = @"Server=.\SQLEXPRESS;AttachDbFilename=" + path + ";Integrated Security=true";.Conn = new SqlConnection(cls.ConnectionString);

{.Conn.Open();.frm1.Visible = false;.frm2 = new Form2();.frm2.ShowDialog();

}

{.Show("Нет соединения с базой данных.\n\nSQL Server не доступен.\nВозможно неправильно указано имя базы данных.\nДля данного приложения нужен SQL Server 2005 или выше.", "Ошибка подключение к базе данных", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}void button2_Click(object sender, EventArgs e) //выход

{.Windows.Forms.Application.Exit();

}void button3_Click(object sender, EventArgs e) //обзор

{.InitialDirectory = Environment.CurrentDirectory;.Title = "Выберите файл базы данных на локальном диске. Он должен находиться в папке с программой!";(openFileDialog1.ShowDialog() == DialogResult.OK)

{.Text = openFileDialog1.FileName;= textBox1.Text.ToString();

//label4.Hide();

}

}

}public class cls

{public SqlConnection Conn; //переменная подключения к бдpublic Form1 frm1; //переменная формы 1public Form2 frm2; //переменная формы 2public Form3 frm3; //переменная формы 3public Form4 frm4; //переменная формы 4public Form5 frm5; //переменная формы 5public Form6 frm6; //переменная формы 6public Form7 frm7; //переменная формы 7public bool goAdd = false; //переменная режима добавленияpublic string ConnectionString;

}

}

.CS:

using System;System.Data;System.Windows.Forms;System.Data.SqlClient;Microsoft.Office.Interop;Microsoft.Office.Interop.Excel;System.Runtime.InteropServices;EKB

{partial class Form2 : Form

{Form2()

{();

}void Form2_FormClosing(object sender, FormClosingEventArgs e)

{.Windows.Forms.Application.Exit();

}void ExportToExcel(DataGridView grid)

{Excel = new ApplicationClass();RefStyle = Excel.ReferenceStyle;.Visible = true;wb = null;TemplatePath = System.Windows.Forms.Application.StartupPath + @"\Экспорт данных.xlt";

{= Excel.Workbooks.Add(TemplatePath);

}(System.Exception ex)

{new Exception("Не удалось загрузить шаблон для экспорта " + TemplatePath + "\n" + ex.Message);

}ws = wb.Worksheets.get_Item(1) as Worksheet;(int j = 0; j < grid.Columns.Count; ++j)

{

(ws.Cells[1, j + 1] as Range).Value2 = grid.Columns[j].HeaderText;(int i = 0; i < grid.Rows.Count; ++i)

{Val = grid.Rows[i].Cells[j].Value;(Val != null)

(ws.Cells[i + 2, j + 1] as Range).Value2 = Val.ToString();

}

}.Columns.EntireColumn.AutoFit();.ReferenceStyle = RefStyle;(Excel as Object);

}void ReleaseExcel(object excel)

{

// Уничтожение объекта Excel..ReleaseComObject(excel);

// Вызываем сборщик мусора для немедленной очистки памяти.GetTotalMemory(true);

}void UpdateDG1()

{.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();comm = new SqlCommand(@"select * from Genre", cls.Conn);iReader = comm.ExecuteReader(CommandBehavior.CloseConnection);i = -1;.RowCount = 1;.ColumnCount = 1;.Columns[0].Width = 352;.Columns[0].HeaderText = "Жанр";(iReader.Read())

{++;.Rows.Add();.Rows[i].Cells[0].Value = iReader[0].ToString();

}.Close();

}void Form2_Load(object sender, EventArgs e)

{ToolTip1 = new ToolTip();.AutoPopDelay = 3000;.ShowAlways = true;.SetToolTip(this.button1, "Нажмите эту кнопку, чтобы произвести поиск по базе данных");.SetToolTip(this.button2, "Нажмите кнопку, чтобы открыть форму добавления новой записи в базу данных");.SetToolTip(this.button3, "Нажмите кнопку, чтобы удалить выбранную запись из базы");.SetToolTip(this.button4, "Нажмите кнопку, чтобы сохранить результаты поиска в Microsoft Excel");.RowCount = 1;.ColumnCount = 7;.Columns[0].Width = 180;.Columns[1].Width = 182;.Columns[2].Width = 90;.Columns[3].Width = 55;.Columns[4].Width = 85;.Columns[5].Width = 107;.Columns[6].Width = 70;.Columns[0].HeaderText = "Жанр";.Columns[1].HeaderText = "Название";.Columns[2].HeaderText = "Автор";.Columns[3].HeaderText = "Год издания";.Columns[4].HeaderText = "Издательство";.Columns[5].HeaderText = "Код издания";.Columns[6].HeaderText = "Кол. страниц";.Checked = true;.Enabled = false;();

}void Form2_FormClosing_1(object sender, FormClosingEventArgs e)

{.frm1.Close();

}void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

{.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();selected = Convert.ToString(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);comand = new SqlCommand(@"SELECT * FROM Books WHERE (Жанр LIKE '" + Convert.ToString(selected) + "')" , cls.Conn);iReader = comand.ExecuteReader(CommandBehavior.CloseConnection);i = -1;.RowCount = 1;.ColumnCount = 7;(iReader.Read())

{++;.Rows.Add();(int j = 0; j < 7;j++)

{.Rows[i].Cells[j].Value = iReader[j].ToString();

}

} .Close();.Enabled = true;

}void выходToolStripMenuItem_Click(object sender, EventArgs e)

{.frm1.Close();.frm2.Close();

}void button2_Click(object sender, EventArgs e) //добавить книгу

{.frm3 = new Form3();.frm3.ShowDialog();

}void добавитьToolStripMenuItem_Click(object sender, EventArgs e)

{.добавитьToolStripMenuItem.Click += new System.EventHandler(this.button2_Click);

}void button1_Click(object sender, EventArgs e) //поиск

{(textBox1.Text == "")

{.Show("Пустое поле поиска!", "Ошибка поиска", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

{text = textBox1.Text;.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();i = -1;.RowCount = 1;.ColumnCount = 7;(radioButton1.Checked == true)

{comand = new SqlCommand(@"SELECT * FROM Books WHERE (Издательство LIKE '%" + text + "%')", cls.Conn);iReader = comand.ExecuteReader(CommandBehavior.CloseConnection);(iReader.Read())

{++;.Rows.Add();(int j = 0; j < 7; j++)

{.Rows[i].Cells[j].Value = iReader[j].ToString();

}

}.Close();

}(radioButton2.Checked == true)

{comand = new SqlCommand(@"SELECT * FROM Books WHERE (Название LIKE '%" + text + "%')", cls.Conn);iReader = comand.ExecuteReader(CommandBehavior.CloseConnection);(iReader.Read())

{++;.Rows.Add();(int j = 0; j < 7; j++)

{.Rows[i].Cells[j].Value = iReader[j].ToString();

}

}.Close();

}(radioButton3.Checked == true)

{comand = new SqlCommand(@"SELECT * FROM Books WHERE (Автор LIKE '%" + text + "%')", cls.Conn);iReader = comand.ExecuteReader(CommandBehavior.CloseConnection);(iReader.Read())

{++;.Rows.Add();(int j = 0; j < 7; j++)

{.Rows[i].Cells[j].Value = iReader[j].ToString();

}.Close();

}.Enabled = true;

}

}void button4_Click(object sender, EventArgs e) // экспорт в эксель

{(dataGridView2);

}void button3_Click(object sender, EventArgs e) //удалить книгу

{.frm4 = new Form4();.frm4.ShowDialog();

}void удалитьКнигуToolStripMenuItem_Click(object sender, EventArgs e)

{.frm4 = new Form4();.frm4.ShowDialog();

}void подключениеКБазеToolStripMenuItem_Click(object sender, EventArgs e)

{.frm1 = new Form1();.frm1.ShowDialog();

}void добавитьЖанрToolStripMenuItem_Click(object sender, EventArgs e)

{.frm5 = new Form5();.frm5.ShowDialog();

}void экспортРезультатовВExcelToolStripMenuItem1_Click(object sender, EventArgs e)

{(dataGridView2);

}void удалитьЖанрToolStripMenuItem_Click(object sender, EventArgs e)

{.frm6 = new Form6();.frm6.ShowDialog();

}void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

{.frm7 = new Form7();.frm7.ShowDialog();

}void оПрограммеToolStripMenuItem1_Click(object sender, EventArgs e)

{.frm7 = new Form7();.frm7.ShowDialog();

}

}

}

Form3.CS:

using System;System.Data;System.Windows.Forms;System.Data.SqlClient;Microsoft.Office.Interop;Microsoft.Office.Interop.Excel;System.Runtime.InteropServices;EKB

{partial class Form3 : Form

{Conn;Form3()

{();

}void Form3_Load(object sender, EventArgs e)

{.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();comm = new SqlCommand(@"select * from Genre", cls.Conn);iReader = comm.ExecuteReader(CommandBehavior.CloseConnection);(iReader.Read())

{.Items.Add(iReader[0].ToString());

}.Close();

}void button2_Click(object sender, EventArgs e) //отмена

{.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Hide();

}void button1_Click(object sender, EventArgs e) //добавить книгу

{(textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "" || comboBox1.Text == "")

{.Show("Одно из полей ввода незаполнено!", "Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

{

{genre = Convert.ToString(this.comboBox1.Text);name = Convert.ToString(this.textBox1.Text);autor = Convert.ToString(this.textBox2.Text);year = Convert.ToString(this.textBox3.Text);isdat = Convert.ToString(this.textBox4.Text);code = Convert.ToString(this.textBox5.Text);kolstr = Convert.ToString(this.textBox6.Text);.Conn.Open();myCommand = cls.Conn.CreateCommand();.CommandText = "INSERT INTO " +

"Books (Жанр,Название,Автор,[Год издания],Издательство,[Код книги],[Количество страниц]) " +

"VALUES (@genre, @name, @autor, @year, @isdat, @code, @kolstr)";.Parameters.Add("@genre", SqlDbType.NChar, 100);.Parameters["@genre"].Value = genre;.Parameters.Add("@name", SqlDbType.NChar, 50);.Parameters["@name"].Value = name;.Parameters.Add("@autor", SqlDbType.NChar, 30);.Parameters["@autor"].Value = autor;.Parameters.Add("@year", SqlDbType.NChar, 5);.Parameters["@year"].Value = year;.Parameters.Add("@isdat", SqlDbType.NChar, 30);.Parameters["@isdat"].Value = isdat;.Parameters.Add("@code", SqlDbType.NChar, 20);.Parameters["@code"].Value = code;.Parameters.Add("@kolstr", SqlDbType.NChar, 6);.Parameters["@kolstr"].Value = kolstr;UspeshnoeIzmenenie = myCommand.ExecuteNonQuery();(UspeshnoeIzmenenie != 0)

{.Show("Издание успешно добавлено!", "Добавление");

}

{.Show("Не удалось добавить издание!", "Добавление");

}

}(Exception ex)

{.Show(ex.ToString());

}

{.Conn.Close();.Hide();

}

}

}

}

}

Form4.CS:

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Data.SqlClient;EKB

{partial class Form4 : Form

{Form4()

{();

}void button1_Click(object sender, EventArgs e) //удалить книгу

{(textBox1.Text == "")

{.Show("Поле ввода должно содержать текст!", "Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

{

{code = Convert.ToString(this.textBox1.Text);

// SqlConnection Conn;

// cls.Conn = new SqlConnection();

//cls.Conn.Open();comm = new SqlCommand(@"select * from Books", cls.Conn);myCommand = cls.Conn.CreateCommand();.CommandText = String.Format("DELETE FROM Books WHERE [Код книги] = '{0}'", code);.Parameters.Add("@code", SqlDbType.NChar, 20);.Parameters["@code"].Value = code;UspeshnoeIzmenenie = myCommand.ExecuteNonQuery();(UspeshnoeIzmenenie != 0)

{.Show("Изменения внесены", "Изменение записи");

}

{.Show("Не удалось внести изменения", "Изменения записи");

}

}(Exception ex)

{.Show(ex.ToString());

}

{.Conn.Close();.Hide();

}

}

}void button2_Click(object sender, EventArgs e) // отмена

{.Text = "";.Hide();

}void Form4_Load(object sender, EventArgs e)

{.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();comm = new SqlCommand(@"select * from Genre", cls.Conn);

}

}

}

Form5.CS:

using System;System.Collections.Generic;System.Data.SqlClient;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;EKB

{partial class Form5 : Form

{Conn;Form5()

{();

}void button2_Click(object sender, EventArgs e) // омена

{.Text = "";.Hide();

}void button1_Click(object sender, EventArgs e) //добавить жанр

{(textBox1.Text == "" )

{.Show("Поле ввода должно содержать текст!", "Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

{

{genre = Convert.ToString(this.textBox1.Text);.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();myCommand = cls.Conn.CreateCommand();.CommandText = "INSERT INTO " +

"Genre (Жанр) " +

"VALUES (@genre)";.Parameters.Add("@genre", SqlDbType.NChar, 100);.Parameters["@genre"].Value = genre;UspeshnoeIzmenenie = myCommand.ExecuteNonQuery();(UspeshnoeIzmenenie != 0)

{.Show("Жанр успешно добавлен в список!", "Добавление");.frm2.UpdateDG1();

}

{.Show("Не удалось добавить жанр в список!", "Добавление");

}

}(Exception ex)

{.Show(ex.ToString());

}

{.Conn.Close();.Hide();

}

}

}

}

}

Form6.CS:

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Data.SqlClient;EKB

{partial class Form6 : Form

{Form6()

{();

}void button2_Click(object sender, EventArgs e) // отмена

{.Text = "";.Hide();

}void button1_Click(object sender, EventArgs e) // удалить жанр

{rezult = MessageBox.Show("Внимание! Вы хотите удалить один из жанров книг.\nУбедитесь что все книги этого жанра удалены из базы.\nИначе они станут недоступными!\n\n Вы действительно хотите удалить данный жанр?", "Удаление", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);(rezult == DialogResult.OK)

{(comboBox1.Text == "")

{.Show("Поле ввода должно содержать текст!", "Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

{

{genredel = Convert.ToString(this.comboBox1.Text);.Conn.Open();myCommand = cls.Conn.CreateCommand();.CommandText = String.Format("DELETE FROM Genre WHERE Жанр='{0}'", genredel);UspeshnoeIzmenenie = myCommand.ExecuteNonQuery();(UspeshnoeIzmenenie != 0)

{.Show("Изменения внесены", "Изменение записи");.frm2.UpdateDG1();

}

{.Show("Не удалось внести изменения", "Изменения записи");

}

}(Exception ex)

{.Show(ex.ToString());

}

{.Conn.Close();.Hide();

}

}

}

}void Form6_Load(object sender, EventArgs e)

{.Conn = new SqlConnection(cls.ConnectionString);.Conn.Open();comm = new SqlCommand(@"select * from Genre", cls.Conn);iReader = comm.ExecuteReader(CommandBehavior.CloseConnection);(iReader.Read())

{.Items.Add(iReader[0].ToString());

}.Close();

}

}

}

Form7.CS:

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;EKB

{partial class Form7 : Form

{Form7()

{();

}void button1_Click(object sender, EventArgs e)

{.Hide();

} }}

Похожие работы на - Разработка базы данных каталога библиотечной литературы

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!