Разработка приложения для учета книг в библиотеке

Автор: Пользователь скрыл имя, 11 Апреля 2011 в 11:54, курсовая работа

Краткое описание

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

Оглавление

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

Введение 4

1. Выбор инструментария 5

2. Разработка предметной области 6

3. Реализация 9

3.1. Реализация на языке высокого уровня 9

3.2 Дополнительные возможности приложения 12

3.2.1. Триггеры 12

3.2.2. Транзакции 13

3.2.3. Экспорт и импорт данных 15

3.3. Создание отчетов 17

Заключение 19

Список использованной литературы 20

Приложение 21

Файлы: 1 файл

Курсовая_работа_по_БД_2.docx

— 302.07 Кб (Скачать)

    В данной работе отчеты реализованы для  наиболее содержательных и важных таблиц Librarian и Books. Для реализации было добавлено 2 окна(по одному для каждой таблицы), в которые был добавлен компонент CristalReportViewer c уже созданным шаблоном отчета. Т.к. добавление отчета не требует никакой реализации и написания кода, для примера приведем снимки работы приложения.

    На  рисунке 3.3.1 представлена загрузка данных из базы и их отображение для таблицы Readers. Для добавления отчета по данной таблице пользователю необходимо нажать кнопку «Отчет».

Рисунок 3.3.1 Пример работы программы

При нажатии  кнопки «Отчет» появляется окно с  визуальным отображением отчета(рисунок 3.3.2) и возможностью его форматировать и изменять по выбору пользователя.

Рисунок 3.3.2 Пример отчета.

Аналогичные действия производятся и над таблицей Librarian.

Заключение

 

В результате выполнения данной курсовой работы на языке

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

Список  использованной литературы

 
  1. Веллинг Л. MySQL. Учебное пособие. / Л. Веллинг, Л. Томсон; пер. с англ. – М. : Издательский дом «Вильямс», 2005 – 304 с. – ISBN 5-8459-0769-1 (рус.)
  2. Грубер М. - Понимание SQL / M. Грубер; пер. Лебедева В.Н. – М. 1993
  3. Дейт К. Дж. Введение в системы баз данных. / К. Дж. Дейт; пер. с англ. – М. : Издательский дом «Вильямс»,  2001 – 1072 с. – ISBN 5-8459-0138-3 (рус).
  4. MySQL [Электронный ресурс] / Электрон. дан. – Режим доступа:   http://www.mysql.ru, свободный.
  5. Хранимые процедуры и триггеры [Электронный ресурс] / Электрон. дан. – Режим доступа: http://www.zoonman.ru/library/mysql_sr_and_t.htm свободный.

 

Приложение

 

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

Util.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

using System.Xml;

namespace WindowsFormsApplication3

{

    public static class Util

    {

        public delegate void ChoosFunction(string value);

        public delegate void setColumn(DataGridView table);

        public static string ConnectionString = "SERVER = localhost; database = Library; uid = root; password = star;";

        //public static void SetColumnNameReaders(DataGridView table);

        public static void UpdateGrid(string tableName, string colName, object value, string ID)

        {

            using (MySqlConnection connection = new MySqlConnection(ConnectionString))

            {

                connection.Open();

                MySqlCommand command = new MySqlCommand("UPDATE " + tableName + " SET " + colName + " = " + "'"

                    + value.ToString() + "'" + " WHERE " + "ID = '" + ID + "'", connection);

                command.ExecuteNonQuery();

            }

        }

        public static void AddRow(DataGridViewRow row, string tableName)

        {

            using (MySqlConnection connection = new MySqlConnection(ConnectionString))

            {

                connection.Open();

                MySqlCommand command = new MySqlCommand("INSERT " + tableName + " VALUES( NULL", connection);

                for (int i = 1; i < row.Cells.Count; i++)

                {

                    command.CommandText += ", " + (row.Cells[i].Value.ToString() == "" ? "NULL" : ("'" + row.Cells[i].Value.ToString() + "'"));

                }

                command.CommandText += ")";

                command.ExecuteNonQuery();

            }

        }

        public static void DeleteRow(DataGridViewRow row, string tableName)

        {

            using (MySqlConnection connection = new MySqlConnection(ConnectionString))

            {

                connection.Open();

                MySqlCommand command = new MySqlCommand("DELETE FROM " + tableName + " WHERE ID = '" + row.Cells["ID"].Value.ToString() + "'"

                    , connection);

             //   command.ExecuteNonQuery();

            }

        }

        public static void SetColumnNames   (DataGridView table, string tableName)

        {

            switch (tableName)

            {

                case "Books": SetColumnNameBooks(table);

                    break;

                case "Readers": SetColumnNameReaders(table);

                    break;

                case "Rooms": SetColumnNameRooms(table);

                    break;

                case "Shelf": SetColumnNameShelf(table);

                    break;

                case "Stellash": SetColumnNameStellash(table);

                    break;

                case "Librarian": SetColumnNameLibrarian(table);

                    break;

                case "Information": SetColumnNameInformation(table);

                    break;

            }

        }

        public static void SetColumnNameBooks(DataGridView table)

        {

            table.Columns[0].HeaderText = "ИД";

            table.Columns[1].HeaderText = "Название книги";

            table.Columns[2].HeaderText = "Жанр`";

            table.Columns[3].HeaderText = "Автор";

            table.Columns[4].HeaderText = "Издательство";

            table.Columns[5].HeaderText = "Год издания";

            table.Columns[6].HeaderText = "ИД_полки";

            table.Columns[7].HeaderText = "Наличие";

Информация о работе Разработка приложения для учета книг в библиотеке