Название таблицы
|
Имя поля
|
Тип данных
|
Размер поля
|
Первичный ключ / вторичный ключ / индексированное поле
|
Client
|
Number
|
Nvarchar
|
50
|
Первичный ключ(AUTO_INCREMENT)
|
|
Fam
|
Nvarchar
|
50
|
NOT NULL
|
|
Name
|
Nvarchar
|
50
|
NOT NULL
|
|
Ochestvo
|
Nvarchar
|
50
|
NOT NULL
|
|
Marka
|
Nvarchar
|
50
|
NOT NULL
|
Work
|
Number
|
Nvarchar
|
50
|
Первичный ключ(AUTO_INCREMENT)
|
|
Work
|
Nvarchar
|
50
|
NOT NULL
|
|
Detali
|
Nvarchar
|
50
|
NOT NULL
|
|
Worker
|
Nvarchar
|
50
|
NOT NULL
|
|
Price
|
Integer
|
50
|
NOT NULL
|
Workers
|
ID
|
Integer
|
50
|
Первичный ключ(AUTO_INCREMENT)
|
|
Login
|
Nvarchar
|
100
|
NOT NULL
|
|
Password
|
Nvarchar
|
100
|
NOT NULL
|
|
Access
|
Integer
|
50
|
NOT NULL
|
priceList
|
Detali
|
Nvarchar
|
50
|
Первичный ключ(AUTO_INCREMENT)
|
|
Work
|
Nvarchar
|
50
|
NOT NULL
|
|
TimeWork
|
DateTime
|
-
|
NOT NULL
|
|
AvtoMechanic
|
Nvarchar
|
50
|
NOT NULL
|
|
Price
|
Integer
|
50
|
NOT NULL
|
warehouse
|
Detali
|
Nvarchar
|
50
|
Первичный ключ(AUTO_INCREMENT)
|
|
Manufacturer
|
Nvarchar
|
50
|
NOT NULL
|
|
CompanyPrice
|
Integer
|
50
|
NOT NULL
|
|
ClientPrice
|
Integer
|
50
|
NOT NULL
|
|
AvailableInWarehouse
|
Nvarchar
|
50
|
NOT NULL
|
рисунок 4.1 - связи таблиц базы данных
автосервис программирование интерфейс информация
6. Проектирование и
программирование интерфейсов системы
Приложение будет иметь вид консольного окна, через которое можно будет
взаимодействовать с пунктами, показанными в нем. Структура окна имеет следующий
вид (рисунок 5.1):
Рисунок 5.1 - Пользовательский интерфейс
Программный код, реализующий вышеописанные функции на языке С#
представлен в Приложении 2.
7. Описание руководства пользователя
.1 Назначение программы
Программа предназначена для автоматизации доступа, обработки, вывода
информации об услугах автосервиса и его клиентах. Программа имеет понятный и
простой для пользователя интерфейс. Для входа в программу существует три уровня
доступа: админ (рисунок 6.1), пользователь (рисунок 6.2) и защитный (рисунок
6.3), использующийся для защиты от несанкционированного доступа в программу.
Рисунок 6.1 - Интерфейс программы, реализованный в уровне доступа админ
В данной программе возможны следующие виды действий, приведённых ниже с
пояснением к каждому из них:
. Просмотреть все записи базы данных автосервиса:
Здесь можно посмотреть имя, фамилию, отчество клиента, марку и
регистрационный номер автомобиля поступившнго в ремонт, текущие работы, которые
проводятся в автомобиле, список необходимых деталей для проведения ремонтных
работ, фамилию мастера и стоимость ремонта автомобиля (рисунок 6.4).
Рисунок 6.2 - Интерфейс программы, реализованный в уровне доступа
пользователь
Рисунок 6.3 - Интерфейс программы, реализованный в при неправильном вводе
пароля
Рисунок 6.4 - Просмотреть все записи базы данных автосервиса
.
Просмотреть всех клиентов:
Здесь можно посмотреть имя, фамилию, отчество клиента, марку и
регистрационный номер автомобиля поступившего в ремонт (рисунок 6.5).
Рисунок 6.5 - Просмотреть всех клиентов
3. Просмотреть список текущих работ:
Здесь можно посмотреть регистрационный номер автомобиля поступившего в
ремонт, текущие работы, которые проводятся в автомобиле, список необходимых
деталей для проведения ремонтных работ, фамилию мастера и стоимость ремонта
автомобиля (рисунок 6.6).
Рисунок 6.6 - Просмотреть список текущих работ
.
Просмотреть список возможных работ:
Здесь можно посмотреть текущие работы, которые проводятся в автомобиле,
список необходимых деталей для проведения ремонтных работ, время проведения
ремонтных работ, фамилию автомеханика, производящего работу и стоимость ремонта
автомобиля (рисунок 6.7).
Рисунок 6.7 - Просмотреть список возможных работ
. Просмотреть наличие деталей на складе:
Здесь можно посмотреть детали, которые используются для проведения
ремонтных работ, цена закупки детали для фирмы и стоимость продажи детали для
клиента, а также информация о том есть ли деталь на складе в данный момент
(рисунок 6.8).
Рисунок 6.8 - Просмотреть наличие деталей на складе
6. Добавить клиента:
Здесь возможно добавить нового клиента. Для этого необходимо ввести фамилию, имя, отчество клиента, марку
и регистрационный номер автомобиля поступившего в ремонт (рисунок 6.9).
Рисунок 6.9 - Добавить клиента
. Ввести выполненные работы:
Здесь возможно добавить новую произведенную работу. Для этого необходимо
ввести произведенную
работу, в список необходимых деталей для проведения ремонтных работ, фамилию
мастера и стоимость ремонта автомобиля (рисунок 7.0).
Рисунок 7.0 - Ввести выполненные работы
8. Изменить данные клиента:
Для изменения информации о клиенте нужно ввести фамилию клиента, по
которой будет найдена информация об этом клиенте: имя, фамилию, отчество
клиента, марка и регистрационный номер автомобиля поступившего в ремонт. После
этого можно будет изменить имя, фамилию, отчество клиента, марку и
регистрационный номер автомобиля поступившего в ремонт на новую. (рисунок 7.1).
Рисунок 7.1 - Изменить данные клиента
. Изменить выбранный тип работы
Для Изменить тип работы нужно ввести регистрационный номер автомобиля
поступившего в ремонт, по которой будет найдена информация об произведённой
работе: тип работы, которые проводятся в автомобиле, список необходимых деталей
для проведения ремонтных работ, фамилию мастера, регистрационный номер
автомобиля поступившего в ремонт и стоимость ремонта автомобиля. После этого
можно будет изменить информацию на новую (рисунок 7.2).
Рисунок 7.2 - Изменить выбранный тип работы
. Удаление клиента:
Для удаления клиента необходимо ввести фамилию клиента и нажать enter
после чего информация о клиенте будет удалена(рисунок 7.3).
Рисунок 7.3 - Удаление клиента
. Удаление работы:
Для удаления работы необходимо ввести регистрационный номер автомобиля поступившего в ремонт и
нажать enter после чего информация о работе будет удалена (рисунок 7.4).
Рисунок 7.4 - Удаление работы
. Поиск по номеру машины
Для поиска по номеру необходимо ввести регистрационный номер автомобиля
поступившего в ремонт и нажать enter после чего будет выведена информация о
клиенте (рисунок 7.5).
Рисунок 7.5 - Поиск по номеру машины
. Поиск по фамилии мастера
Для поиска по фамилии мастера необходимо ввести фамилию мастера и нажать
enter после чего будет выведена информация обо всех работах за которые
ответственен этот мастер (рисунок 7.6).
Рисунок 7.6 - Поиск по фамилии мастера
. Выход.
.2 Системные требования
Для выполнения программы необходим компьютер, подключённый к локальной
сети или имеющий доступ к Enternet (конкретно к MySQL).
Минимальные системные требования для компьютера:
) Процессор Intel Pentium 2.16 GHz;
) Оперативная память 1024 Mb;
) Операционная система Windows Server
2003/Server 2008/XP/Vista/7.
7.3 Работа программы
Для открытия приложения необходимо запустить файл Автосервис.exe. При входе в программу предлагается
ввести логин и пороли для идентификации пользователя. Существуют три уровня
доступа в программу: админ - расширенный интерфейс, позволяющий осуществлять
все заложенные функции программы (рисунок 6.1), такие как:
. Просмотреть все записи базы данных автосервиса
. Просмотреть всех клиентов
. Просмотреть список текущих работ
. Просмотреть список возможных работ
. Просмотреть наличие деталей на складе
. Добавить клиента
. Ввести выполненные работы
. Изменить данные клиента
. Изменить выбранный тип работы
. Удаление клиента
. Удаление работы
. Поиск по фамилии мастера
. Выход;
Пользователь упрощённый интерфейс, позволяющий осуществлять только
пользовательские функции программы (рисунок 6.2), такие как:
. Просмотреть все записи базы данных автосервиса
. Просмотреть всех клиентов
. Просмотреть список текущих работ
. Просмотреть список возможных работ
. Поиск по номеру машины
. Поиск по фамилии мастера
. Выход;
При неверном вводе логина и пароля программа требует в ввести логин и
пароль заново, до тех пор, пока не будет введён правильный пароль (рисунок
6.3).
.4 Сообщения пользователю
При возникновении исключительной ситуации оператору будет сообщено об
ошибке. Примеры ошибок:
) «Не была введена фамилия». Возникает, если пользователь оставил
поле пустым.
) «Неверно! Введите соответствующую действию цифру!». Возникает,
если пользователь пытается воспользоваться функцией, которой в меню не существует.
) «Не удалось подключиться к серверу». Возникает при отсутствии
соединения с сервером базы данных.
) «Введите правильные данные!». Возникает при вводе некорректных
данных.
8. Тестирование системы и описание полученных результатов
Аварийное изменение конфигураций сервера
Проведём тестирование полученного приложения. Стрессовое тестирование
позволяет проверить насколько приложение, и система в целом работоспособно в
условиях стресса и оценить способность системы к регенерации, т.е. к
возвращению к нормальному состоянию после прекращения воздействия стресса.
Стрессом в данном контексте может быть повышение интенсивности выполнения
операций до очень высоких значений или аварийное изменение конфигурации
сервера. Также одной из задач при стрессовом тестировании может быть оценка
деградации производительности, таким образом, цели стрессового тестирования
могут пересекаться с целями тестирования производительности.
Проведём тестирование с аварийным изменением конфигураций сервера
(рисунок 8.1):
Рисунок 8.1 - Аварийное изменение конфигураций сервера
В случаи разрыва соединения с сервером, будет выдана соответствующая
ошибка, а возможность работы с информацией будет остановлена. Будет открыто
окно с настройками подключения к серверу для решения проблемы.
В ходе тестирования на стрессоустойчивость программа справляется с
критическими ситуациями и возвращается к нормальному состоянию после
прекращения воздействия стресса.
Тестирование стабильности или надежности.
Задачей тестирования стабильности (надежности) является проверка
работоспособности приложения при длительном (многочасовом) тестировании со
средним уровнем нагрузки. Времена выполнения операций могут играть в данном
виде тестирования второстепенную роль. При этом на первое место выходит
отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты,
влияющие именно на стабильность работы.
Было проведено тестирование на некорректные действия пользователя.
Пользователь не сможет вызвать необрабатываемых ошибок в программе и нарушить
её работоспособность.
Аналогичная проверка включена во все поля, где возможен ввод некорректных
данных. Результат тестирования представлен на рисунке 8.2.
Рисунок 8.2 - Рабочее окно программы
Программа прошла тестирование и полностью работоспособна. Уязвимостей не
обнаружено.
Заключение
При выполнении курсового проекта были пройдены все этапы разработки
специализированного прикладного программного обеспечения:
- формализация задачи;
- сбор необходимых исходных данных;
разработка и отладка программного продукта.
Разработана программа «Автосервис», которая позволяет автоматизировать
работу пользователя и облегчить доступ к информации и ее обработку. Приложение
обеспечивает лёгкую и быструю работу с базой данных.
Разработанное приложение выполняет следующие операции:
вывод содержимого базы данных;
добавление записей в базу данных;
редактирование записей в базе данных;
удаление записей из базы данных;
поиск записей в базе данных.
Кроме того, был спроектирован консольный интерфейс, который обеспечивает
удобную работу пользователя с приложением. Интерфейс реализован в виде
консольного окна, в котором перечислены пункты, при помощи которых можно
взаимодействовать с БД автосервиса.
При разработке программного приложения «Автосервис» мною был глубже
изучен язык С# и вопросы взаимодействия с базой данных.
Список использованных источников
1. Павловская Т.А. C#. Программирование на языке высокого уровня. Учебник для
вузов. - СПб.: Питер, 2007. - 432 с.
. Фролов А.В., Фролов Г.В. Язык C#. Самоучитель. - М.: ДИАЛОГ-МИФИ,
2003. - 560 с.
. Шилдт Г.Полный справочник по C#. - М.: Издательский
дом «Вильямс», 2004. - 752 с.
. Робинсон С., Кумар Н., Макквин К., Корнес О., Глин
Дж., Харвей Б. C# для профессионалов (2 тома). Программист - программисту. -
М.: Лори, 2003. - 478с.
. Использование C#. Специальное издание. - М.:
Издательский дом «Вильямс», 2002. - 528с.
. Шилдт.Г. C#: учебный курс. - М.: Питер, 2002. -
512с.
. Трэй Нэш. C# 2008: ускоренный курс для
профессионалов. - М.: ООО
. «И.Д. Вильямс», 2008. - 576 с.
. Троелсен Э. C# и платформа NET. Библиотека программиста. - Спб.: Питер, 2002. - 800
с.
. Прайс Д., Гандэрлой М. Visual C#.NET. Полное
руководство.: - К.: ВЕК+, СПб.: КОРОНА принт, К.: НТИ, М.: Энтроп, 2004. - 960
с.
. Секунов Н.Ю. Разработка приложений на С++ и C#.
Библиотека программиста. - СПб.: Питер, 2003. - 608 с.
. Майо Д. C#: Искусство программирования. Энциклопедия
программиста. - СПб.: ООО «ДиаСофтЮП», 2002.- 656 с.
Приложение A
Схема обобщённого алгоритма работы программы
Схема алгоритма работы программы:
Приложение 2
Листинг программНОГО КОДА
using System;
using
System.Collections.Generic;System.ComponentModel;System.Data;System.IO;System.Linq;System.Text;System.Data.Sql;System.Data.SqlClient; Курсавой_проект_Автосервис
{
class
Автосервис
{string Enter(string str1, string str2)
{myConnection88 = new SqlConnection(@"server=localhost;
Trusted_Connection=yes; database=ServiceStation; Connection timeout=10");
{access = "2";.Open();myReader = null;myParam77 =
new SqlParameter("@Param77", SqlDbType.NVarChar, 50);.Value =
str1;myParam88 = new SqlParameter("@Param88", SqlDbType.NVarChar,
50);.Value = str2;myCommand = new SqlCommand("Select Access from Workers
WHERE Login=@Param77 and Password=@Param88", myConnection88);.Parameters.Add(myParam77);.Parameters.Add(myParam88);=
myCommand.ExecuteReader();(myReader.Read())
{
access = myReader["Access"].ToString();
}.Close();access;
}
{.WriteLine("Не удалось подключиться к серверу!\n");"2";
}
}void Main(string[] args)
{buff = null, name, fam, famm, ochestvo, marka, number,
numberr, work, detali, worker;price;access2 = "3", log = null, pass =
null;flag = true;flag2 = true;(flag2)
{(flag)
{
if (int.Parse(access2) != 0 && int.Parse(access2) !=
1)
{
Console.WriteLine(" _АвтоСервис_ \n");
Console.WriteLine("Для входа в программу введите логин и
пароль!\n");
Console.WriteLine("Введите
Логин");
log = Console.ReadLine();
Console.WriteLine("Введите
пароль");
pass = Console.ReadLine();
access2 = Enter(log, pass);
}
if (access2 == "0")
{
Console.WriteLine(" _АвтоСервис_ \n");
Console.Write("\nВыберите действие:\n\n" +
"1. Просмотреть все записи базы данных автосервиса \n" +
"2. Просмотреть всех клиентов\n" +
"3. Просмотреть список текущих работ\n" +
"4. Просмотреть список возможных работ\n" +
"5. Просмотреть наличие деталей на складе\n" +
"6. Добавить клиента\n" +
"7. Ввести выполненые работы\n" +
"8. Изменить данные клиента\n" +
"9. Измененить выбранный тип работы\n" +
"10. Удаление клиента\n" +
"11. Удаление работы\n" +
"12. Поиск по номеру машины\n" +
"13. Поиск по фамилии мастера\n" +
"14. Выход\n\n");
Console.Write("Ваш выбор: ");
buff = Console.ReadLine();
Console.WriteLine();
break;
}
if (access2 == "1")
{
Console.WriteLine(" _АвтоСервис_ ");
Console.Write("\nВыберите действие:\n\n" +
"1. Просмотреть все записи базы данных автосервиса \n" +
"2. Просмотреть всех клиентов\n" +
"3. Просмотреть список текущих работ\n" +
"4. Просмотреть список возможных работ\n" +
"12. Поиск по номеру машины\n" +
"13. Поиск по фамилии мастера\n" +
"14. Выход\n\n");
Console.Write("Ваш выбор: ");
buff = Console.ReadLine();
Console.WriteLine();
break;
}
else
{
Console.WriteLine("Введен
неправильный пароль!\n");
continue;
}
}(buff)
{
case "1":
SqlConnection myConnection = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("Select * from
client,work where client.number=work.number", myConnection);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.Write("Фамилия: " + myReader["Fam"].ToString() +
"\n");
Console.Write("Имя: " + myReader["Name"].ToString() +
"\n");
Console.Write("Отчество: " + myReader["Ochestvo"].ToString() +
"\n");
Console.Write("Марка машины: " +
myReader["Marka"].ToString() + "\n");
Console.Write("Регистрационный номер: " +
myReader["Number"].ToString() + "\n");
Console.Write("Работы: " + myReader["Work"].ToString() +
"\n");
Console.Write("Детали: " + myReader["Detali"].ToString() +
"\n");
Console.Write("Мастер: " + myReader["Worker"].ToString() +
"\n");
Console.Write("Цена: " + myReader["Price"].ToString() +
"\n\n\n");
}
myConnection.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "2":
SqlConnection myConnection2 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection2.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("Select * from
client", myConnection2);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.Write("Фамилия: " + myReader["Fam"].ToString() +
"\n");
Console.Write("Имя: " + myReader["Name"].ToString() +
"\n");
Console.Write("Отчество: " + myReader["Ochestvo"].ToString() +
"\n");
Console.Write("Марка машины: " +
myReader["Marka"].ToString() + "\n");
Console.Write("Регистрационный номер: " +
myReader["Number"].ToString() + "\n\n");
}
myConnection2.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "3":
SqlConnection myConnection3 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection3.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("Select * from
work", myConnection3);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.Write("Работы: " + myReader["Work"].ToString() +
"\n");
Console.Write("Детали: " + myReader["Detali"].ToString() +
"\n");
Console.Write("Мастер: " + myReader["Worker"].ToString() +
"\n");
Console.Write("Регистрационный номер машины: " + myReader["Number"].ToString() +
"\n");
Console.Write("Цена: " + myReader["Price"].ToString() +
"\n\n");
}
myConnection3.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "4":
SqlConnection myConnection4 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection4.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("Select * from
priceList", myConnection4);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.Write("Работы: " + myReader["Work"].ToString() +
"\n");
Console.Write("Детали: " + myReader["Detali"].ToString() +
"\n");
Console.Write("Время ремонта: " +
myReader["TimeWork"].ToString() + "\n");
Console.Write("Автомеханик производящий работы: " + myReader["AvtoMechanic"].ToString() +
"\n");
Console.Write("Цена: " + myReader["Price"].ToString() +
"\n\n");
}
myConnection4.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}"5":
SqlConnection myConnection5 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes; database=ServiceStation;
Connection timeout=10");
try
{
myConnection5.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("Select * from
warehouse", myConnection5);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.Write("Детали : " + myReader["Detali"].ToString() +
"\n");
Console.Write("Производитель детали : " +
myReader["Manufacturer"].ToString() + "\n");
Console.Write("Цена детали для фирмы : " +
myReader["CompanyPrice"].ToString() + "\n");
Console.Write("Цена детали для клиента : " +
myReader["ClientPrice"].ToString() + "\n");
Console.Write("Есть ли в деталь
на складе : " +
myReader["AvailableInWarehouse"].ToString() + "\n\n");
}
myConnection5.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "6":
Console.WriteLine("Введите
фамилию");
fam = Console.ReadLine();
if (fam.Length == 0)
{
Console.WriteLine("Не была введена фамилия!\n");
break;
}
Console.WriteLine("Введите
имя");
name = Console.ReadLine();
if (name.Length == 0)
{
Console.WriteLine("Не было введено имя!\n");
break;
}
Console.WriteLine("Введите отчество");
ochestvo = Console.ReadLine();
if (ochestvo.Length == 0)
{
Console.WriteLine("Не было введено отчество!\n");
break;
}
Console.WriteLine("Введите марку машины");
marka = Console.ReadLine();
if (marka.Length == 0)
{
Console.WriteLine("Не была введена марка машины!\n");
break;
}
Console.WriteLine("Введите регистрационный номер машины");
number = Console.ReadLine();
if (number.Length == 0)
{
Console.WriteLine("Не был введен регистрационный номер
машины!\n");
break;
}
SqlConnection myConnection6 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection6.Open();
SqlParameter myParam1 = new SqlParameter("@Param1",
SqlDbType.NVarChar, 50);
myParam1.Value = fam;
SqlParameter myParam2 = new SqlParameter("@Param2",
SqlDbType.NVarChar, 50);
myParam2.Value = name;
SqlParameter myParam3 = new SqlParameter("@Param3",
SqlDbType.NVarChar, 50);
myParam3.Value = ochestvo;
SqlParameter myParam4 = new SqlParameter("@Param4",
SqlDbType.NVarChar, 50);
myParam4.Value = marka;
SqlParameter myParam5 = new SqlParameter("@Param5",
SqlDbType.NVarChar, 50);
myParam5.Value = number;
SqlCommand myCommand3 = new SqlCommand("Insert into
client (Fam,Name,Ochestvo,Marka,Number) values
(@Param1,@Param2,@Param3,@Param4,@Param5);", myConnection6);
myCommand3.Parameters.Add(myParam1);
myCommand3.Parameters.Add(myParam2);
myCommand3.Parameters.Add(myParam3);
myCommand3.Parameters.Add(myParam4);
myCommand3.Parameters.Add(myParam5);
myCommand3.ExecuteNonQuery();
myConnection6.Close();
Console.WriteLine("\nКлиент
добавлен!\n");
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "7":
Console.WriteLine("Введите Произведенные работы");
work = Console.ReadLine();
if (work.Length == 0)
{
Console.WriteLine("Не были введены произведенные работы!\n");
break;
}
Console.WriteLine("Введите использованные детали");
detali = Console.ReadLine();
if (detali.Length == 0)
{
Console.WriteLine("Не были введены использованные детали!\n");
break;
}
Console.WriteLine("Введите фамилию мастера производившего
работы");
worker = Console.ReadLine();
if (worker.Length == 0)
{
Console.WriteLine("Не была введена фамилию мастера производившего
работы!\n");
break;
}
Console.WriteLine("Введите регистрационный номер машины");
number = Console.ReadLine();
if (number.Length == 0)
{
break;
}
Console.WriteLine("Введите цену к оплате");
var key2 = new ConsoleKeyInfo();
var number2 = "";
while ((key2 = Console.ReadKey()).Key != ConsoleKey.Enter)
{
if (!Char.IsDigit(key2.KeyChar))
{
if (!Char.IsControl(key2.KeyChar))
Console.Write("\b \b");
}
else
{
if (!Char.IsControl(key2.KeyChar))
number2 += key2.KeyChar;
}
if (key2.Key == ConsoleKey.Backspace &&
number2.Length > 0)
{
number2 = number2.Remove(number2.Length - 1, 1);
Console.Write("\b");
}
}
price = Convert.ToInt32(number2);
SqlConnection myConnection7 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection7.Open();
SqlParameter myParam6 = new SqlParameter("@Param6",
SqlDbType.NVarChar, 50);
myParam6.Value = work;
SqlParameter myParam7 = new SqlParameter("@Param7",
SqlDbType.NVarChar, 50);
myParam7.Value = detali;
SqlParameter myParam8 = new SqlParameter("@Param8",
SqlDbType.NVarChar, 50);
myParam8.Value = worker;
SqlParameter myParam9 = new SqlParameter("@Param9",
SqlDbType.NVarChar, 50);
myParam9.Value = number;
SqlParameter myParam10 = new
SqlParameter("@Param10", SqlDbType.Int);
myParam10.Value = price;
SqlCommand myCommand2 = new SqlCommand("Insert into work
(Work,Detali,Worker,Number,Price) values
(@Param6,@Param7,@Param8,@Param9,@Param10);", myConnection7);
myCommand2.Parameters.Add(myParam6);
myCommand2.Parameters.Add(myParam7);
myCommand2.Parameters.Add(myParam8);
myCommand2.Parameters.Add(myParam9);
myCommand2.Parameters.Add(myParam10);
myCommand2.ExecuteNonQuery();
myConnection7.Close();
Console.WriteLine("\nРаботы
добавлены!\n");
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "8":
Console.WriteLine("Введите
Фамилию");
famm = Console.ReadLine();
if (famm.Length == 0)
{
Console.WriteLine("Не была введена фамилия!\n");
break;
}
SqlConnection myConnection8 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection8.Open();
SqlDataReader myReader1 = null;
SqlParameter myParam11 = new
SqlParameter("@Param11", SqlDbType.NVarChar, 50);
myParam11.Value = famm;
SqlCommand myCommand4 = new SqlCommand("Select * from
client where fam = @Param11 ", myConnection8);
myCommand4.Parameters.Add(myParam11);
myReader1 = myCommand4.ExecuteReader();
while (myReader1.Read())
{
Console.Write("Фамилия: " + myReader1["Fam"].ToString() +
"\n");
Console.Write("Имя: " + myReader1["Name"].ToString() +
"\n");
Console.Write("Отчество: " + myReader1["Ochestvo"].ToString() +
"\n");
Console.Write("Марка машины: " +
myReader1["Marka"].ToString() + "\n");
Console.Write("Регистрационный номер: " +
myReader1["Number"].ToString() + "\n\n");
}
myConnection8.Close();
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
Console.WriteLine("Введите
фамилию");
fam = Console.ReadLine();
if (fam.Length == 0)
{
Console.WriteLine("Не была введена фамилия!\n");
break;
}
Console.WriteLine("Введите
имя");
name = Console.ReadLine();
if (name.Length == 0)
{
Console.WriteLine("Не было введено имя клиента!\n");
break;
}
Console.WriteLine("Введите
очество");
ochestvo = Console.ReadLine();
if (ochestvo.Length == 0)
{
Console.WriteLine("Не было введено отчество клиента!\n");
break;
}
Console.WriteLine("Введите марку машины");
marka = Console.ReadLine();
if (marka.Length == 0)
{
Console.WriteLine("Не была введена марка машины!\n");
break;
}
Console.WriteLine("Введите регистрационный номер машины");
number = Console.ReadLine();
if (number.Length == 0)
{
Console.WriteLine("Не был введен номер!\n");
break;
}
//myConnection09
SqlConnection myConnection09 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection09.Open();
SqlParameter myParam12 = new
SqlParameter("@Param12", SqlDbType.NVarChar, 50);
myParam12.Value = fam;
SqlParameter myParam13 = new
SqlParameter("@Param13", SqlDbType.NVarChar, 50);
myParam13.Value = name;
SqlParameter myParam14 = new
SqlParameter("@Param14", SqlDbType.NVarChar, 50);
myParam14.Value = ochestvo;
SqlParameter myParam15 = new
SqlParameter("@Param15", SqlDbType.NVarChar, 50);
myParam15.Value = marka;
SqlParameter myParam16 = new
SqlParameter("@Param16", SqlDbType.NVarChar, 50);
myParam16.Value = number;
SqlParameter myParam17 = new
SqlParameter("@Param17", SqlDbType.NVarChar, 50);
myParam17.Value = famm;
SqlCommand myCommand5 = new SqlCommand
("Update client Set Fam = @Param12, Name = @Param13,
Ochestvo = @Param14, Marka = @Param15, Number = @Param16 where Fam =
@Param17;", myConnection09);
myCommand5.Parameters.Add(myParam12);
myCommand5.Parameters.Add(myParam13);
myCommand5.Parameters.Add(myParam14);
myCommand5.Parameters.Add(myParam15);
myCommand5.Parameters.Add(myParam16);
myCommand5.Parameters.Add(myParam17);
myCommand5.ExecuteNonQuery();
myConnection09.Close();
Console.WriteLine("Запись
изменена!\n");
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "9":
Console.WriteLine("Введите Регистрационный номер");
numberr = Console.ReadLine();
if (numberr.Length == 0)
{
Console.WriteLine("Не был введен номер!\n");
break;
}
SqlConnection myConnection9 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection9.Open();
SqlDataReader myReader1 = null;
SqlParameter myParam18 = new
SqlParameter("@Param11", SqlDbType.NVarChar, 50);
myParam18.Value = numberr;
SqlCommand myCommand4 = new SqlCommand("Select * from
work where number=@Param11", myConnection9);
myCommand4.Parameters.Add(myParam18);
myReader1 = myCommand4.ExecuteReader();
while (myReader1.Read())
{
Console.Write("Работы: " + myReader1["Work"].ToString() +
"\n");
Console.Write("Детали: " + myReader1["Detali"].ToString() +
"\n");
Console.Write("Мастер: " + myReader1["Worker"].ToString() +
"\n");
Console.Write("Регистрационный номер машины: " + myReader1["Number"].ToString() +
"\n");
Console.Write("Цена: " + myReader1["Price"].ToString() +
"\n\n");
}
myConnection9.Close();
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
Console.WriteLine("Введите Произведенные работы");
work = Console.ReadLine();
if (work.Length == 0)
{
Console.WriteLine("Не были введены произведенные работы!\n");
break;
}
Console.WriteLine("Введите использованные детали");
detali = Console.ReadLine();
if (detali.Length == 0)
{
Console.WriteLine("Не были введены детали!\n");
break;
}.WriteLine("Введите фамилию мастера производившего работы");
worker = Console.ReadLine();
if (worker.Length == 0)
{
Console.WriteLine("Не была введена фамилия мастера производившего
работы !\n");
break;
}
Console.WriteLine("Введите регистрационный номер машины");
number = Console.ReadLine();
if (number.Length == 0)
{
Console.WriteLine("Не был введен регистрационный номер
машины!\n");
break;
}
Console.WriteLine("Введите цену к оплате");
var key3 = new ConsoleKeyInfo();
var number3 = "";
while ((key2 = Console.ReadKey()).Key != ConsoleKey.Enter)
{
if (!Char.IsDigit(key2.KeyChar))
{
if (!Char.IsControl(key2.KeyChar))
Console.Write("\b \b");
}
else
{
if (!Char.IsControl(key2.KeyChar))
number3 += key2.KeyChar;
}
if (key2.Key == ConsoleKey.Backspace &&
number3.Length > 0)
{
number3 = number3.Remove(number3.Length - 1, 1);
Console.Write("\b");
}
}
price = Convert.ToInt32(number3);
//myConnection010
SqlConnection myConnection010 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection010.Open();
SqlParameter myParam19 = new
SqlParameter("@Param19", SqlDbType.NVarChar, 50);
myParam19.Value = work;
SqlParameter myParam20 = new
SqlParameter("@Param20", SqlDbType.NVarChar, 50);
myParam20.Value = detali;
SqlParameter myParam21 = new
SqlParameter("@Param21", SqlDbType.NVarChar, 50);
myParam21.Value = worker;
SqlParameter myParam22 = new
SqlParameter("@Param22", SqlDbType.NVarChar, 50);
myParam22.Value = number;
SqlParameter myParam23 = new
SqlParameter("@Param23", SqlDbType.Int);
myParam23.Value = price;
SqlParameter myParam24 = new
SqlParameter("@Param24", SqlDbType.NVarChar, 50);
myParam24.Value = numberr;
SqlCommand myCommand5 = new SqlCommand
("Update work Set work = @Param19, detali = @Param20,
worker = @Param21, number = @Param22, price = @Param23 where number =
@Param24;", myConnection010);
myCommand5.Parameters.Add(myParam19);
myCommand5.Parameters.Add(myParam20);
myCommand5.Parameters.Add(myParam21);
myCommand5.Parameters.Add(myParam22);
myCommand5.Parameters.Add(myParam23);
myCommand5.Parameters.Add(myParam24);
myCommand5.ExecuteNonQuery();
myConnection010.Close();
Console.WriteLine("Запись
изменена!\n");
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "10":
Console.WriteLine("Введите фамилию клиента которого хотите
удалить");
fam = Console.ReadLine();
if (fam.Length == 0)
{
Console.WriteLine("Не была введена фамилию клиента , которого вы
хотите удалить!\n");
break;
}
SqlConnection myConnection10 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection10.Open();
SqlDataReader myReader2 = null;
SqlParameter myParam25 = new
SqlParameter("@Param25", SqlDbType.NVarChar, 50);
myParam25.Value = fam;
SqlCommand myCommand6 = new SqlCommand("Select * from
client where fam =@Param25",
myConnection10);
myCommand6.Parameters.Add(myParam25);
myReader2 = myCommand6.ExecuteReader();
if (myReader2.Read() == true)
{
while (myReader2.Read() == true)
{
Console.Write("Фамилия: " + myReader2["Fam"].ToString() +
"\n");
Console.Write("Имя: " + myReader2["Name"].ToString() +
"\n");
Console.Write("Отчество: " + myReader2["Ochestvo"].ToString() +
"\n");
Console.Write("Марка машины: " +
myReader2["Marka"].ToString() + "\n");
Console.Write("Регистрационный номер: " +
myReader2["Number"].ToString() + "\n\n");
}
}
myConnection10.Close();
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
SqlConnection myConnection011 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection011.Open();
SqlParameter myParam26 = new
SqlParameter("@Param26", SqlDbType.NVarChar, 50);
myParam26.Value = fam;
SqlCommand myCommand4 = new SqlCommand("Delete FROM
client WHERE fam =@Param26",
myConnection011);
myCommand4.Parameters.Add(myParam26);
myCommand4.ExecuteReader();
myConnection011.Close();
Console.WriteLine("\nЗапись
удалена!\n");
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "11":
Console.WriteLine("Введите Регистрационный номер , по которому вы
хотите удалить запись из базы данных");
number = Console.ReadLine();
if (number.Length == 0)
{
Console.WriteLine("Не был введен номер!\n");
break;
}
SqlConnection myConnection11 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes; database=ServiceStation;
Connection timeout=10");
try
{
myConnection11.Open();
SqlDataReader myReader2 = null;
SqlParameter myParam27 = new
SqlParameter("@Param27", SqlDbType.NVarChar, 50);
myParam27.Value = number;
SqlCommand myCommand6 = new SqlCommand("Select * from
work where number = @Param27",
myConnection11);
myCommand6.Parameters.Add(myParam27);
myReader2 = myCommand6.ExecuteReader();
if (myReader2.Read() == true)
while (myReader2.Read() == true)
{
Console.Write("Работы: " + myReader2["Work"].ToString() +
"\n");
Console.Write("Детали: " + myReader2["Detali"].ToString() +
"\n");
Console.Write("Мастер: " + myReader2["Worker"].ToString() +
"\n");
Console.Write("Регистрационный номер машины: " + myReader2["Number"].ToString() +
"\n");
Console.Write("Цена: " + myReader2["Price"].ToString() +
"\n\n");
}
}
myConnection11.Close();
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
//myConnection012
SqlConnection myConnection012 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection012.Open();
SqlParameter myParam28 = new
SqlParameter("@Param28", SqlDbType.NVarChar, 50);
myParam28.Value = number;
SqlCommand myCommand4 = new SqlCommand("Delete FROM work
WHERE number =@Param28",
myConnection012);
myCommand4.Parameters.Add(myParam28);
myCommand4.ExecuteReader();
myConnection012.Close();
Console.WriteLine("\nЗапись
удалена!\n");
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "12":
Console.WriteLine("Введите регистрационный номер машины,по которому
нужно найти владельца и модель автомобиля:");
number = Console.ReadLine();
if (number.Length == 0)
{
Console.WriteLine("Не был введен регистрационный номер машины
!\n");
break;
}
SqlConnection myConnection12 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection12.Open();
SqlDataReader myReader5 = null;
SqlParameter myParam29 = new
SqlParameter("@Param29", SqlDbType.NVarChar, 50);
myParam29.Value = number;
SqlCommand myCommand5 = new SqlCommand("Select * from
client where number like @Param29", myConnection12);
myCommand5.Parameters.Add(myParam29);
myReader5 = myCommand5.ExecuteReader();
while (myReader5.Read())
{
Console.Write("\nФамилия: " + myReader5["Fam"].ToString() +
"\n");
Console.Write("Имя: " + myReader5["Name"].ToString() +
"\n");
Console.Write("Отчество: " + myReader5["Ochestvo"].ToString() +
"\n");
Console.Write("Марка машины: " +
myReader5["Marka"].ToString() + "\n");
Console.Write("Регистрационный номер: " +
myReader5["Number"].ToString() + "\n\n");
}
myConnection12.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "13":
Console.WriteLine("Введите фамилию мастера которого нужно
найти:");
worker = Console.ReadLine();
if (worker.Length == 0)
{
Console.WriteLine("Не была введена фамилию мастера которого нужно
найти!\n");
break;
}
SqlConnection myConnection13 = new
SqlConnection(@"server=localhost; Trusted_Connection=yes;
database=ServiceStation; Connection timeout=10");
try
{
myConnection13.Open();
SqlDataReader myReader5 = null;
SqlParameter myParam30 = new
SqlParameter("@Param30", SqlDbType.NVarChar, 50);
myParam30.Value = worker;
SqlCommand myCommand5 = new SqlCommand("Select * from
work where worker like @Param30", myConnection13);
myCommand5.Parameters.Add(myParam30);
myReader5 = myCommand5.ExecuteReader();
while (myReader5.Read())
{
Console.Write("\nРаботы: " + myReader5["Work"].ToString() +
"\n");
Console.Write("Детали: " + myReader5["Detali"].ToString() +
"\n");
Console.Write("Мастер: " + myReader5["Worker"].ToString() +
"\n");
Console.Write("Регистрационный номер машины: " + myReader5["Number"].ToString() +
"\n");
Console.Write("Цена: " + myReader5["Price"].ToString() +
"\n\n");
}
myConnection13.Close();
break;
}
catch
{
Console.WriteLine("Не удалось подключиться к серверу!\n");
break;
}
case "14":
flag2 = false;
return;
default:
Console.WriteLine("Не верно! Введите соответствующую действию цифру !");
break;
}
}
}
}