Система заказа железнодорожных билетов

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

Система заказа железнодорожных билетов

КАЗАНСКИЙ НАУЧНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. А. Н. ТУПОЛЕВА - КАИ

Отделение среднего профессионального образования

Института компьютерных технологий и защиты информации

«Колледж информационных технологий»








Курсовая работа

по дисциплине «Прикладное программирование»

На тему «Система заказа железнодорожных билетов»

Выполнил: В. В. Абдуллаев

Преподаватель М. А. Котов





Казань 2015

Содержание

Введение

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

.1 Общие сведения о базах данных

.2 Общие сведения о СУБД MS Access

.3 Язык SQL-запросов в СУБД MS Access

.4 Функциональное назначение программы

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

.1 Создание базы данных

.2 Создание программы

.3 Испытание программы

Заключение

Список литературы

Приложение

Введение


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

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

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

Среда программирования Visual C# отличается быстротой разработки подобных программ, а также она отличается надежностью и эффективностью.

Задачи работы

·              Изучение методов разработки приложений, управляющих БД в среде Visual C# 2010;

·              Построение алгоритма решения задачи;

·              Осуществление реализации этого алгоритма и тестирование созданной программы (с предварительным созданием самой БД).

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

 

.1 Общие сведения о базах данных


База данных - организованная совокупность данных, предназначенная для длительного хранения во внешней памяти ЭВМ, регулярного обновления и использования.

База данных представляет собой информационную модель определенной предметной области.

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

Классификация баз данных возможна по характеру информации: фактографические и документальные БД; по структуре данных: иерархические, сетевые, реляционные БД; по способу хранения данных: централизованные и распределенные БД.

Реляционные БД (РБД) - наиболее распространенный тип БД, использующий табличное представление данных.

Основные понятия организации данных в РБД: таблица, запись, поле, тип поля, главный ключ таблицы.

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

 

.2 Общие сведения о СУБД MS Access

Access - это программа, с помощью которой можно быстро и довольно просто создавать базы данных, заполнять их и работать с ними. Access является СУБД реляционного типа, в которой реализованы все средства и возможности современных СУБД. Реляционная база упрощает поиск, анализ, поддержку и защиту данных, поскольку они сохраняются в одном файле. Access в переводе с английского означает «доступ». MS Access - это функционально полная реляционная СУБД, одна из самых мощных, гибких и простых в использовании. В ней можно решить большинство задач, не написав ни единой строки программы, но если нужно создать нечто очень сложное, то на этот случай MS Access предоставляет мощный язык программирования - Visual Basic for Application. Access входит в состав пакета Microsoft Office.

Популярность СУБД Microsoft Access обусловлена следующими причинами:

доступность в изучении и понятность;

СУБД полностью русифицирована;

возможность использования OLE технологии;

интегрированность с пакетами Microsoft Office;

поддержка web - технологий;

удобная работа с конструкторами форм, таблиц, отчетов, страниц;

широко и наглядно представлена справочная система;

наличие большого набора «мастеров» по разработке объектов.

Таблицы - это основные и самые необходимые объекты любой БД, предназначены только для хранения данных. Access может содержать целый набор взаимосвязанных таблиц.

Запросы - это объекты, создаваемые для обработки базы данных: сортировки, фильтрации, объединения, отбора, изменение и вычисления по формулам.

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

Отчеты - это объекты для вывода данных на принтер или другое устройство вывода в удобном и наглядном виде. Например, в виде бланка или счета.

Макросы - это набор макрокоманд. Например: открыть форму, напечатать таблицу. Когда возникает необходимость частого выполнения одних и тех же операций с БД, имеется возможность сгруппировать набор команд в один макрос. Макрос закрепляют за определенной комбинацией клавиш клавиатуры или кнопкой, нажатие которой приводит к выполнению всей последовательности действий записанных в макросе.

Модули - это программы созданные средствами языка Visual Basic. Позволяющие дополнить стандартные средства Access, если уже имеющихся не хватает для реализации всех требований к работе СУБД. Программист может расширить возможности системы, дописав необходимые модули и добавив их в БД.

Все данные в реляционной БД представлены в виде таблиц. Таблица - это основной объект любой базы данных, поэтому создание любой БД начинается с создания таблиц. Каждая строка таблицы содержит информацию только об одном объекте и называется записью. Столбец таблицы содержит однотипную для всех записей информацию и называется полем. Поля образуют структуру базы данных, а записи составляют информацию, которая в ней содержится.

Поля обладают определенными свойствами, от которых зависит какие данные можно в него вносить и какие операции можно выполнять. Самым главным и уникальным свойством любого поля является его Имя. Имя поля не может содержать знаки «.» и «!». Имя - это внутренняя информация базы данных, не видимая для использующего уже готовую базу. Пользователь видит Подпись. Подпись - это то, что отображается в заголовке поля. Разным полям, например, можно задать одинаковые подписи. Это вполне возможно и не вызовет ошибки, поскольку поля при этом по-прежнему сохраняют свои отличные друг от друга имена. Если подпись не указана, то в заголовок просто дублируется Имя поля. Каждому полю задается определенный тип данных в зависимости от информации, которая в нем хранится.

Типы данных MS Access:

Текстовый - текст или комбинация любых символов, например: адрес, фамилия, а также числа, не требующие вычислений, например, номера телефонов, коды. Сохраняет до 255 знаков. Свойство Размер поля определяет максимальное количество знаков, которые можно ввести в поле.

Поле МЕМО - длинный текст, например, примечания или описания. Сохраняет до 65 535 знаков.

Числовой - данные, используемые для математических вычислений. Конкретный тип числового поля определяется значением свойства Размер поля (байт - 1б., целое - 2б., длинное целое - 4б., одинарное с плавающей точкой - 4б., двойное с плавающей точкой - 8б.).

Дата/время - значения дат и времени. Сохраняет 8 байтов.

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

Счетчик - автоматическая нумерация. Сохраняет 4 байта.

Логический - данные, принимающие только одно из двух возможных значений, таких как «Да/Нет», «Истина/Ложь», «Вкл/Выкл». Значения Null не допускаются. Сохраняет 1 бит.

Поле объекта OLE - внешние объекты (документы Word, электронные таблицы Excel, рисунки, звукозапись или другие данные), созданные в других программах, использующих протокол OLE. Сохраняет до 1 Гигабайта.

Гиперссылка - может иметь вид адреса сайта Интернет или электронной почты и путь к файлу. Сохраняет до 64 000 знаков.

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

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

Верхняя панель окна базы данных.

 

.3 Язык SQL-запросов в СУБД MS Access

визуальный программирование билет база

Запрос SQL - это запрос, создаваемый при помощи инструкций SQL. Структурированный язык запросов (Structured Query Language) - это язык запросов, ориентированный специально на реляционные базы данных. SQL был разработан в 70-е годы фирмой IBM и стандартизован ANSI (American National Standards Institute). Поэтому его часто также называют ANSI-SQL. Одно из достоинств SQL - его широкое распространение. При этом следует помнить, что на различных СУБД диалект SQL может отличаться от стандарта (ANSI SQL89 и ANSI SQL92). Диалект SQL, используемый в MS Access, называется Jet SQL.

Небольшой набор команд SQL и определенный синтаксис составления выражений позволяет совершать сколь угодно сложные операции. Самой распространенной из них является выборка связанных данных из одной или нескольких таблиц при помощи оператора SELECT, однако в случае необходимости SQL может вносить информацию, корректировать хранящиеся записи и создавать новые объекты базы данных. SQL применяется не только в MS Access, но и во всех современных СУБД. SQL-запросы построены на лексическом диалекте, основанном на семантике обычного языка (английского). При создании языка предполагалось, что конструкцию на нем сможет написать любой неподготовленный пользователь, руководствуясь исключительно своими потребностями и исходя из существующей структуры данных. Среди базовых инструкций, на которых основываются запросы, стоит выделить следующие наиболее распространенные команды:- предназначается для выборки из базы данных набора записей, соответствующих указанному критерию. В качестве входных параметров инструкции передаются названия полей таблиц, которые должны быть внесены в результирующий набор.- служит для редактирования записей (одной или нескольких). Пользователь указывает названия полей таблиц и их новые значения. DELETE - инструкция, полностью удаляющая из базы данных все указанные записи (а не только значения отдельных полей).- позволяет создавать новые объекты базы данных.

Вспомогательные конструкции языка, например, WHERE задает критерий уточняющего поиска среди отобранных записей.

В языке запросов, реализованном в Microsoft Access, поддерживаются четыре дополнительных расширения: TRANSFORM (позволяет строить перекрестные запросы), IN (создание связи с удаленной базой данных), DISTINCTROW (определение запроса-объединения с потенциальной возможностью объединения данных), WITH OWNER-ACCESS OPTION (позволяет создавать специализированные запросы, которые может выполнять пользователь, не имеющий права доступа к таблицам, которыми оперирует данный запрос). Кроме того, в качестве функции могут применяться встроенные функции MS Access и встроенного языка VBA.

Пример SQL-запроса: SELECT * FROM Table1 WHERE Город LIKE 'Казань' (выбрать все из таблицы Table1 со столбца «Город», что содержит ‘Казань’).

1.4 Функциональное назначение программы


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

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

 

.1 Создание базы данных


Перед тем, как писать программу, нужно сначала создать базу данных (далее - БД) железнодорожной кассы, с помощью которой можно будет определить, сколько рейсов доступно на данный момент, а также сколько билетов уже заказано. А конкретно - нам понадобится создать БД с 2 таблицами: с таблицей рейсов, которые доступны на данный момент, и с таблицей заказанных билетов на определенные рейсы.

Работать будем в системе управления базами данных (далее - СУБД) Microsoft Access. Создаем БД, которую назовем ZHD.mdb. Создаем 2 таблицы с помощью конструктора: первую называем «Рейсы», вторую - «Заказы». В таблице «Рейсы» создаем поля: №, Отправление, Назначение, Время отправления, Время прибытия, Купе цена, Плац цена, Код. Поле «№» - счетчик (ключевое поле), поля «Время отправления» и «Время прибытия» - это дата (полная), поля «Купе цена» и «Плац цена» - денежные, все остальное - текст (рис. 1). Переходим в режим таблицы и заполняем ее, как на рис. 2. Таблицу «Заказы» пока только создаем, но не заполняем. Поля: ФИО, Паспорт, Код, Рейс, Время отправления, Время прибытия, Вагон, Цена. Все, кроме поля «№» (счетчик) - текст (рис. 3). Сохраняем.

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

Рис. 1. Создание таблицы «Рейсы» БД кассы в конструкторе.

Рис. 2. Заполнение таблицы «Рейсы» данными.

Рис. 3. Создание таблицы «Заказы» в конструкторе.

 

.2 Создание программы


Теперь нужно разработать программу, которая будет работать с созданными БД.

Для этого понадобится система разработки программ Microsoft Visual C# 2010, которая входит в пакет Microsoft Visual Studio 2010.

В создаваемой программе будет 1 форма, содержащая 2 вкладки: «Рейсы» и «Заказы». Понятно, что во вкладке «Рейсы» будет информация о доступных на данный момент рейсах, а во вкладке «Заказы» - о заказах.

Приступим к созданию проекта. Назовем его ZHD_kassa. Добавим в форму элемент tabControl. В свойствах элемента переименовываем первую вкладку в «Рейсы», вторую - в «Заказы». В обе вкладки добавляем по элементам dataGridView и bindingNavigator (управление таблицей). Элементы dataGridView привязываем к тем таблицам, которые соответствуют вкладкам, в которых они находятся: «Рейсы» и «Заказы». Элементы bindingNavigator в этих же вкладках привязываем к элементам рейсы BindingSource и заказы BindingSource соответственно. В обоих элементах bindingNavigator добавляем по 2 новые кнопки: «Сохранить» и «Показать все». После - делаем так, чтобы при нажатии этих кнопок выполнялись нужные нам действия. Подробное описание - в исходном коде программы.

При желании можно и поменять иконки (значки), что и было сделано в этой работе («Сохранить» - дискета, «Показать все» - окно).

Дальше будем работать с каждой вкладкой по отдельности.

Во вкладку «Рейсы» добавляем 9 элементов textBox, 1 элемент comboBox (состоящий из значений «плац» и «купе», по умолчанию поставим «плац»), 2 элемента dateTimePicker (в обоих меняем свойства: CustomFormat “dd.MM.yyyy HH:mm”, Format “Custom”), 3 элемента button («Оформить заказ», «Поиск», «Добавить») и 11 элементов label (заголовки 11 из всех вышеперечисленных элементов: «ФИО», «серия, № паспорта», «пункт отправления» - 2 шт., «пункт назначения» - 2 шт., «время отправления», «время прибытия», «купе цена», «плац цена», «код рейса»). Все располагаем примерно в таком порядке (рис. 4).

Рис. 4. Вкладка «Рейсы».

После этого задаем определенные задачи, которые должны выполнять некоторые из этих элементов. Подробно - в прил. 1.

Переходим во вкладку «Заказы». Здесь все проще - добавляем всего 5 элементов - 2 элемента label («значение» и «место поиска»), 1 элемент textBox, 1 элемент comboBox (значения: «ФИО» - по умолчанию, «Паспорт», «Код», «Рейс» и «Цена») и 1 элемент button («Поиск»). Реализуем поиск по категориям.

Должно получиться примерно так, как на рис. 5.

Рис. 5. Вкладка «Заказы».

 

.3 Испытание программы


Проверим программу. Общий скриншот программы - на рис. 6.

Рис. 6. Программа в действии.

Попробуем поискать среди рейсов нужное направление. Введем пункт отправления - Москва, пункт назначения - Казань и кликнем кнопку «Поиск». Результат - на рис. 7.

Рис. 7. Поиск нужного рейса.

Вернем все в таблицу, щелкнув «Показать все». Попробуем добавить новый рейс: пункт отправления - Москва, пункт назначения - Казань, цена купе - 3300, цена плаца - 2200, время отправления - 03.05.2015 12:00, время прибытия, 04.05.2015 00:00, код рейса - любые цифры и буква, например 121Л (можно было сделать так, чтобы код рейса генерировался случайным образом, но, опять же, это не является сутью данной работы). Нажимаем «Добавить». Программа выведет на экран сообщение о добавлении рейса. Таблица обновится. Сохраняем таблицу. Результат - на рис. 8.

Рис. 8. Добавление рейса.

Попробуем оформить заказ. Выберем рейс 462Н (10) Н.Новгород - С.-Петербург, выберем вагон «купе». Заполним ФИО (например, «Иванов И.И.»), а также серию и номер паспорта (1234 123456). Нажимаем на «Оформить заказ». Программа выводит сообщение об оформлении заказа с подробной информацией о нем (рис. 9). Заходим во вкладку «Заказы» и нажатием на «Показать все» обновляем таблицу. Сохраняем ее. Результат можно видеть на рис. 10.

Рис. 9. Оформление заказа.

Рис. 10. Результат оформления заказа.

Рейсы можно как добавлять, так и удалять. Снова перейдем на «Рейсы» и удалим введенный недавно нами рейс 121Л Москва-Казань, нажав на красный крестик на панели задач таблицы. Сохраним ее и обновим. Результат на рис. 11.

Рис. 11. Результат удаления 11 строки (рейс 121Л).

Теперь проверим «Заказы». Добавим еще 2 заказа: от имени Петрова П.П. - рейс 120А (2) С.-Петербург-Уфа (купе) и от имени Сидорова В.В. - рейс 098Т Москва-Волгоград (плац). Перейдем на «Заказы». Все обновляем и сохраняем. Результат должен быть как на рис. 12.

Рис. 12. Добавление новых заказов.

Попробуем поискать заказ по ФИО. Введем Иванов И.И. Результат - на рис. 13.

Рис. 13. Поиск по ФИО.

Поменяем область поиска на «Паспорт» и введем серию и номер паспорта, например 1234 123455. Результат - на рис. 14.

Рис. 14. Поиск по паспорту.

Введем код рейса 098Т. Результат - на рис. 15.

Рис. 15. Поиск по коду рейса.

Поиск по остальным областям работает по такому же принципу.

Заключение


В ходе выполнения курсовой работы были получены и закреплены навыки программирования в среде Visual C# 2010.

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

Список литературы


1.      C# [Электронный ресурс] // Википедия - свободная энциклопедия. URL: <https://ru.wikipedia.org/wiki/C_Sharp> (дата обращения: 07.04.2015)

.        Основные понятия баз данных [Электронный ресурс] // ХВАТИТ.com. URL: <http://school.xvatit.com/index.php?title=Основные_понятия_баз_данных> (дата обращения: 07.04.2015)

3.      Общие сведения о СУБД MS Access. Основные объекты MS Access. Примеры [Электронный ресурс] // Отрадное-2. URL: <http://otradnoe-2.narod.ru/kurs/lessons/modul_2_2.htm> (дата обращения: 07.04.2015)

.        Запросы MS Access [Электронный ресурс] // ТСТУ. URL: <http://www.gaps.tstu.ru/win-1251/lab/sreda/saoi/lect_g6.html> (дата обращения: 08.04.2015)

5.      Visual C# [Электронный ресурс] // MSDN. URL: <https://msdn.microsoft.com/ru-ru/library/vstudio/kx37x362(v=vs.110).aspx> (дата обращения: 08.04.2015)

.        Информатика и ИКТ. Базовый уровень. Практикум для 10-11 классов. Семакин И.Г., Хеннер Е.К., Шеина Т.Ю. [Электронный ресурс] // Образовательные ресурсы Интернета. URL: <http://www.alleng.ru/d/comp/comp194.htm> (дата обращения: 09.04.2015)

.        Официальный сайт поддержки Microsoft Office [Электронный ресурс] // Microsoft. URL: <http://office.microsoft.com/ru-ru/> (дата обращения: 09.04.2015)

Приложение. Листинг программы


Form1.cs

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "zHDDataSet.Заказы". При необходимости она может быть перемещена или удалена.

this.заказыTableAdapter.Fill(this.zHDDataSet.Заказы);

// TODO: данная строка кода позволяет загрузить данные в таблицу "zHDDataSet.Рейсы". При необходимости она может быть перемещена или удалена.

this.рейсыTableAdapter.Fill(this.zHDDataSet.Рейсы);

}

private void toolStripButton2_Click(object sender, EventArgs e)

{

try

{

this.заказыTableAdapter.Update(this.zHDDataSet.Заказы);

MessageBox.Show("Сохранено");

this.заказыTableAdapter.Fill(this.zHDDataSet.Заказы);

}

catch (Exception)

{

MessageBox.Show("Ошибка");

}

}

private void toolStripButton1_Click(object sender, EventArgs e)

{

try

{

this.рейсыTableAdapter.Update(this.zHDDataSet.Рейсы);

MessageBox.Show("Сохранено");

this.рейсыTableAdapter.Fill(this.zHDDataSet.Рейсы);

}

catch (Exception)

{

MessageBox.Show("Ошибка");

}

}

private void button1_Click(object sender, EventArgs e)

{

if ((textBox1.Text == "") || (textBox2.Text == ""))

{

MessageBox.Show("Введите пункт отправления и пункт назначения");

}

else

{

string cmd = "SELECT * FROM Рейсы WHERE ((Отправление LIKE '" + textBox1.Text + "') AND (Назначение LIKE '" + textBox2.Text + "'))";

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

OleDbConnection conn = new OleDbConnection(con);

OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

DataTable dt = new DataTable();

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

}

}

private void button2_Click(object sender, EventArgs e)

{

if (textBox3.Text == "")

{

MessageBox.Show("Введите значение");

{

string cmd = "SELECT * FROM Заказы WHERE (" + comboBox1.Text + " LIKE '" + textBox3.Text + "')";

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

OleDbConnection conn = new OleDbConnection(con);

OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView2.DataSource = dt;

conn.Close();

}

}

private void toolStripButton4_Click(object sender, EventArgs e)

{

string cmd = "SELECT * FROM Рейсы";

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

OleDbConnection conn = new OleDbConnection(con);

OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

DataTable dt = new DataTable();

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

}

private void toolStripButton3_Click(object sender, EventArgs e)

{

string cmd = "SELECT * FROM Заказы";

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

OleDbConnection conn = new OleDbConnection(con);

OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

DataTable dt = new DataTable();

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView2.DataSource = dt;

conn.Close();

}

private void button3_Click(object sender, EventArgs e)

{

try

{

string cen = "";

string fio = textBox5.Text;

string pasp = textBox6.Text;

string kodr = dataGridView1[7, dataGridView1.CurrentRow.Index].Value.ToString();

string reys = dataGridView1[1, dataGridView1.CurrentRow.Index].Value.ToString() + "-" + dataGridView1[2, dataGridView1.CurrentRow.Index].Value.ToString();

string data_o = dataGridView1[3, dataGridView1.CurrentRow.Index].Value.ToString();

string data_p = dataGridView1[4, dataGridView1.CurrentRow.Index].Value.ToString();

string vag = comboBox2.Text;

if (comboBox2.Text == "плац") { cen = dataGridView1[6, dataGridView1.CurrentRow.Index].Value.ToString(); }

if (comboBox2.Text == "купе") { cen = dataGridView1[5, dataGridView1.CurrentRow.Index].Value.ToString(); }

if ((textBox5.Text == "") || (textBox6.Text == ""))

{

MessageBox.Show("Введите ФИО и номер паспорта");

}

else

{

string cmd = "INSERT INTO Заказы (ФИО, Паспорт, Код, Рейс, [Время отправления], [Время прибытия], Вагон, Цена) VALUES ('" + fio + "', '" + pasp + "', '" + kodr + "', '" + reys + "', '" + data_o + "', '" + data_p + "', '" + vag + "', '" + cen + "')";

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

OleDbConnection conn = new OleDbConnection(con);

OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

DataTable dt = new DataTable();

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView2.DataSource = dt;

conn.Close();

MessageBox.Show(fio + "\nПаспорт: " + pasp + "\nРейс " + kodr + ": " + reys + ", отправление " + data_o + ", прибытие " + data_p + ", " + vag + ", цена: " + cen + "р. \n\nЗаказ оформлен. Для просмотра перейдите в Заказы");

//this.заказыTableAdapter.Update(this.zHDDataSet.Заказы);

}

}

catch (Exception)

{

MessageBox.Show("Ошибка");

}

private void button4_Click(object sender, EventArgs e)

{

string cen_k1 = textBox8.Text;

string cen_p1 = textBox9.Text;

string m_o1 = textBox4.Text;

string m_p1 = textBox7.Text;

string kodr1 = textBox10.Text;

string data_o1 = dateTimePicker1.Value.ToString();

string data_p1 = dateTimePicker2.Value.ToString();

if ((textBox4.Text == "") || (textBox7.Text == "") || ((textBox8.Text == "") && (textBox9.Text == "")))

{

MessageBox.Show("Заполните пункты отправления и назначения, даты отправления и прибытия, а также цены");

}

else

{

string cmd = "INSERT INTO Рейсы (Отправление, Назначение, [Время отправления], [Время прибытия], [Купе цена], [Плац цена], Код) VALUES ('" + m_o1 + "', '" + m_p1 + "', '" + data_o1 + "', '" + data_p1 + "', '" + cen_k1 + "', '" + cen_p1 + "', '" + kodr1 + "')";

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

OleDbConnection conn = new OleDbConnection(con);

OleDbDataAdapter da = new OleDbDataAdapter(cmd, conn);

DataTable dt = new DataTable();

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

MessageBox.Show("Рейс добавлен");

//this.рейсыTableAdapter.Fill(this.zHDDataSet.Рейсы);

cmd = "SELECT * FROM Рейсы";

con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ZHD.mdb";

conn = new OleDbConnection(con);

da = new OleDbDataAdapter(cmd, conn);

dt = new DataTable();

conn.Open();

dt.Clear();

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

}

}

}

}

Похожие работы на - Система заказа железнодорожных билетов

 

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