База данных "Студенты и преподаватели"

 

СОДЕРЖАНИЕ


ВВЕДЕНИЕ

1. АНАЛИЗ ЗАДАЧИ

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

1.2 Разработка общей архитектуры информационной системы

2. РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

2.1 Выявление сущностей, их атрибутов и ключей

2.2 Выявление связей

2.3 Построение ER-диаграммы

2.4 Переход от ER-диаграммы к предварительным отношениям

2.5 Заполнение предварительных отношений атрибутами

На рисунке представлены следующие обозначения:

2.6 Проверка предварительных отношений на соответствие нормальным формам

2.7 Построение схемы данных

2.8 Задание частных ограничений целостности данных

2.9 Разработка хранимых процедур

3.1 Организация взаимодействия клиентской программы с БД

3.2 Разработка форм

3.3 Разработка отчетов

3.4 Разработка сценария инсталляции клиентской программы

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

Заключение

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

Приложение 1: SQL-скрипт для создания БД

Приложение 2: исходный текст клиентской программы

Приложение 3: Сценарий инсталляции программы

ВВЕДЕНИЕ

база данный атрибут

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

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

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

·СУБД: MS SQL Server 2005;

·система программирования: Microsoft Visual C# 2005;

·CASE средства проектирования баз данных: Sybase PowerDesigner 15;

·программа инсталляции: Inno Setup 4.2.7.

1.АНАЛИЗ ЗАДАЧИ


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


В данном курсовом проекте рассматривается такая область как «Студенты и преподаватели».

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

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

Ректору должна предоставляться вся необходимая информация о студентах и преподавателях.

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

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

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

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

1.2 Разработка общей архитектуры информационной системы


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

Процедуры обычно хранятся в словаре базы данных и разделяются несколькими клиентами.


Рисунок 1 - Двухзвенная модель архитектуры клиент-сервер


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

2. РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ


2.1 Выявление сущностей, их атрибутов и ключей


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

1.Студент

2.Первичный ключ: Номер зачётной книжки

.Стипендия

.Первичный ключ: ID стипендии

.Экзамен

.Первичный ключ: ID экзамена

.Факультет

.Первичный ключ: ID факультета

.Группа

.Первичный ключ: ID группы

.Специальность

.Первичный ключ: Номер специальности

.Кафедра

.Первичный ключ: Номер кафедры

.Экзамен

.Первичный ключ: ID экзамена

.Предмет

.Первичный ключ: Номер предмета

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

.Первичный ключ: ID преподавателя

.Зарплата

.Первичный ключ: ID зарплаты

.Учёная степень

Первичный ключ: ID учёной степени

24.Преподаёт (Была выявлена при переходе от концептуальной модели данных к логической)

25.Первичный ключ: Номер занятия

2.2 Выявление связей

В ходе разработки информационной системы были выявлены следующие связи между сущностями:

)


Рисунок 2 - Связь «Есть у».


Один преподаватель может иметь несколько учёных степеней. Одна запись об ученой степени может относиться только к одному преподавателю. Следовательно, имеет место связь 1..N. Каждая запись об учёной степени должна относиться к какому-либо преподавателю. Учёная степень есть не у каждого преподавателя. Следовательно, для связи «Учёная степень ? Преподаватель» будет использоваться кардинальность 1,1, а для связи «Преподаватель ? Учёная степень » - 0,n.


)

Рисунок 3 - Связь «Выдается».


Один преподаватель может получать несколько заработных плат. Одна запись о зарплате может относиться только к одному преподавателю. Следовательно, имеет место связь 1..N. Каждая запись о зарплате должна относиться к какому-либо преподавателю. Но не каждый преподаватель имеет начисленную зарплату (например, только что нанятый преподаватель). Следовательно, для связи «Зарплата ? Преподаватель» будет кардинальность 1,1, а для связи «Преподаватель ? Зарплата» - 0,n.

)


Рисунок 4 - Связь «Преподаёт».


Преподаватель может преподавать различные предметы, один и тот же предмет могут вести несколько преподавателей. Следовательно, имеет место связь N..N. Предмет может временно не преподаваться никаким преподавателем. Преподаватель может и не преподавать никакой предмет. Следовательно, для связи «Преподаватель ? Предмет» будет использоваться кардинальность 0,n, а для связи «Предмет ? Преподаватель» - 0,n.

)


Рисунок 5 - Связь «Работает на».

На кафедре может работать несколько преподавателей. Каждый преподаватель работает только на одной кафедре. Следовательно, имеет место связь 1..N. На кафедре может временно не числиться ни одного преподавателя. Преподаватель должен быть закреплен за какой-либо кафедрой. Следовательно, для связи «Кафедра ? Преподаватель» будет кардинальность 0,n., а для связи «Преподаватель ? Кафедра» - 1,1.

)

Рисунок 6 - Связь «По».


Экзамен по конкретному предмету может сдаваться несколько раз. Каждой записи об экзамене соответствует только один предмет. Следовательно, имеет место связь 1..N. Предмет может и не сдаваться на экзамене. Экзамен должен сдаваться только по существующим предметам. Следовательно, для связи «Предмет ? Экзамен» будет кардинальность 0,n., а для связи «Экзамен ? Предмет» - 1,1.

)


Рисунок 7 - Связь «Числится на».


На факультете может учиться много студентов. Студент может учиться только на одном факультете. Следовательно, имеет место связь 1..N. На факультете может временно не числиться студентов. Каждый студент должен числиться на каком-либо факультете. Следовательно, для связи «Факультет ? Студент» будет кардинальность 0,n., а для связи «Студент ? Факультет» - 1,1.

)


Рисунок 8 - Связь «Сдаётся».

Студент может сдавать несколько экзаменов. Каждый экзамен сдаётся только одним студентом. Следовательно, имеет место связь 1..N. Студент может не сдавать никаких экзаменов (например, первокурсник на первом семестре обучения). Каждый экзамен обязательно сдаётся каким-либо студентом. Следовательно, для связи «Студент ? Экзамен» будет кардинальность 0,n., а для связи «Экзамен ? Студент» - 1,1.

)


Рисунок 9 - Связь «Выплачивается».


Студенту может начисляться несколько стипендий. Стипендия начисляется одному студенту. Следовательно, имеет место связь 1..N. Студент может не получать стипендий. Каждая запись о стипендии должна относиться к какому-либо зарегистрированному студенту. Следовательно, для связи «Студент ? Стипендия» будет кардинальность 0,n., а для связи «Экзамен ? Стипендия» - 1,1.

)


Рисунок 10 - Связь «Относится к».


В группе может учиться много студентов. Студент может учиться только в одной группе. Следовательно, имеет место связь 1..N. В группе может временно не числиться студентов. Каждый студент должен относиться к какой-либо группе. Следовательно, для связи «Группа ? Студент» будет кардинальность 0,n., а для связи «Студент ? Группа» - 1,1.

)


Рисунок 11 - Связь «Принадлежит».


Специальности может принадлежать несколько групп. Группа принадлежит только одной специальности. Следовательно, имеет место связь 1..N. На специальности может временно не числиться никаких групп. Группа должна относиться к какой-нибудь специальности. Следовательно, для связи «Специальность? Группа» будет кардинальность 0,n., а для связи «Группа ? Специальность» - 1,1.

)


Рисунок 12 - Связь «Выпускается».


Кафедра может выпускать несколько специальностей. Каждая специальность может выпускаться только одной кафедрой. Следовательно, имеет место связь 1..N. Кафедра может и не выпускать никаких специальностей. Но специальность должна принадлежать к какой-либо кафедре. Следовательно, для связи «Кафедра ? Специальность» будет кардинальность 0,n., а для связи «Специальность ? Кафедра» - 1,1.


2.3 Построение ER-диаграммы


ER-диаграмма, построенная для предметной области «Студенты и преподаватели», на основе выявленных ранее сущностей и связей между ними представлена на рисунке 13.


Рисунок 13 - Концептуальная модель данных для предметной области «Студенты и преподаватели».


.4 Переход от ER-диаграммы к предварительным отношениям


Так как используется CASE-средство проектирования баз данных переход от концептуальной модели данных к предварительным отношениям (логической модели данных) осуществляется автоматически.

Покажем переход к предварительным отношениям на примере связи «Выдаётся». В данном случае используется связь 1..N. Кардинальность многосвязной сущности 1..1, односвязной 0..n. Следовательно, необходимо сформировать два предварительных отношения, то есть по одному для каждой сущности. Первичными ключами в отношениях будут ключи соответствующих сущностей. В отношение «Зарплата» будет добавлен внешний ключ для связи с отношением «Преподаватель». Предварительные отношения для связи «Выдаётся» показаны на рисунке 14.


Рисунок 14 - Предварительные отношения для связи «Выдаётся».


.5 Заполнение предварительных отношений атрибутами


При переходе от концептуальной модели данных к логической были получены предварительные отношения, приведенные на рисунке 15.


Рисунок 15 - Логическая модель данных для предметной области «Студенты и преподаватели».


На рисунке представлены следующие обозначения:

- Primary Key;

- Foreign Key;

- Mandatory;

- Необязательные поля.


2.6 Проверка предварительных отношений на соответствие нормальным формам


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

На рисунке 16 показана диаграмма функциональных зависимостей для отношения «Учёная степень».


Рисунок 16 - Диаграмма функциональных зависимостей для отношения

«Учёная степень».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 17 показана диаграмма функциональных зависимостей для отношения «Предмет».


Рисунок 17 - Диаграмма функциональных зависимостей для отношения

«Предмет».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 18 показана диаграмма функциональных зависимостей для отношения «Преподаватель».

Рисунок 18 - Диаграмма функциональных зависимостей для отношения

«Преподаватель».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 19 показана диаграмма функциональных зависимостей для отношения «Преподаёт».


Рисунок 19 - Диаграмма функциональных зависимостей для отношения

«Преподаёт».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 20 показана диаграмма функциональных зависимостей для отношения «Экзамен».


Рисунок 20 - Диаграмма функциональных зависимостей для отношения

«Экзамен».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 21 показана диаграмма функциональных зависимостей для отношения «Факультет».

Рисунок 21 - Диаграмма функциональных зависимостей для отношения

«Факультет».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 22 показана диаграмма функциональных зависимостей для отношения «Стипендия».


Рисунок 22 - Диаграмма функциональных зависимостей для отношения

«Стипендия».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 23 показана диаграмма функциональных зависимостей для отношения «Студент».


Рисунок 23 - Диаграмма функциональных зависимостей для отношения

«Студент».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 24 показана диаграмма функциональных зависимостей для отношения «Группа».


Рисунок 24 - Диаграмма функциональных зависимостей для отношения

«Группа».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 25 показана диаграмма функциональных зависимостей для отношения «Специальность».


Рисунок 25 - Диаграмма функциональных зависимостей для отношения

«Специальность».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 26 показана диаграмма функциональных зависимостей для отношения «Кафедра».


Рисунок 26 - Диаграмма функциональных зависимостей для отношения

«Кафедра».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 27 показана диаграмма функциональных зависимостей для отношения «Зарплата».


Рисунок 27 - Диаграмма функциональных зависимостей для отношения

«Зарплата».


Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.


2.7 Построение схемы данных


Так как используется CASE-средство проектирования баз данных, переход от логической модели данных к физической осуществляется автоматически. Физическая модель приведена на рисунке 28.


Рисунок 30 - Физическая модель данных для предметной области «Студенты и преподаватели».


2.8 Задание частных ограничений целостности данных


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


.9 Разработка хранимых процедур


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

1.Таблица Кафедра (dbo.Department)

1.1.Удаление данных


Use Университет

Go

Create proc [dbo].[DepartmentDelete]

(@ID int,@re int output)@re=0exists (select * from DepartmentID_Dep=@ID)(exists (select * from TeachersDepartment=@ID))(exists (select * from SpecialityDepartment=@ID))@re= -1 /*Нельзя удалить, потому что на кафедре есть преподаватели или специальности*/from DepartmentID_Dep=@IDset @re= -2 /*Нельзя удалить, потому что нет такой кафедры*/


1.2.Добавление данных


Use Университет

Create proc [dbo].[DepartmentInsert]

(@ShortName nvarchar(10),

@FullName nvarchar(100),@re int output)@re=0not exists (select * from DepartmentShortName=@ShortName or=@FullName)into Department(ShortName,FullName) values(@ShortName,@FullName)

else set @re= -1


1.3.Обновление данных

Университет

Create [dbo].[DepartmentUpdate]

(@ID int, @ShortName nvarchar(10),@FullName nvarchar(100),@re int output)@re=0exists (select * from DepartmentID_Dep=@ID)exists (select * from Department(ShortName=@ShortName or=@FullName) and @ID<>ID_Dep)@re= -2elseDepartmentShortName=@ShortName, FullName=@FullNameID_Dep=@ID

else set @re= -1

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

@id int - Номер кафедры;

@ShortName nvarchar(10) - Краткое название кафедры;

@FullName nvarchar(100) - Полное название кафедры;

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.


2.Таблица Экзамен (dbo. Exam)

2.1.Удаление данных


Use Университет

Go

Create [dbo].[ExamDelete]

(@ID int, @re int output)@re=0exists(select * from Exam where ID_Exam=@ID)from Exam where ID_Exam=@IDset @re=-1


2.2.Добавление данных


Use Университет

Create proc [dbo].[ExamInsert]

(@FIO nvarchar(5),@Subject nvarchar(50),@Mark nvarchar(1), @Date datetime, @re int output)@re=0@subj intexists(select * from Student where Nzach=@FIO)exists (select * from subject where [name]=@Subject)(@mark='3')or(@mark='4')or(@mark='5')or(@mark='2')@subj=Nsubject from subject where [name]=@Subjectnot exists(select * from Exam where (Nzach=@FIO)and(Date=@Date))into Exam (Nzach,Nsubject,mark,date)(@FIO,@subj,@mark,@date)set @re=-4 set @re=-3 set @re=-2 set @re=-1


2.3.Обновление данных


Use Университет

Go

Create proc [dbo].[ExamUpdate]

(@ID int,@FIO nvarchar(5),@Subject nvarchar(50),@Mark int, @Date datetime, @re int output)@re=0@subj intexists(select * from exam where ID_Exam=@ID)exists(select * from Student where Nzach=@FIO)exists (select * from subject where [name]=@Subject)(@mark='3')or(@mark='4')or(@mark='5')or(@mark='2')@subj=Nsubject from subject where [name]=@Subjectnot exists(select * from Exam where (ID_Exam<>@ID) and(Nzach=@FIO)and(Date=@Date))Exam Nzach=@FIO,Nsubject=@subj,mark=@mark,date=@dateID_Exam=@IDset @re=-4 set @re=-3 set @re=-2 set @re=-1 set @re=-5


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

@id int - Номер экзамена;

@FIO nvarchar(5) - Номер зачётной книжки студента;

@Subject nvarchar(50)-Название сдаваемого предмета;

@Mark int - Оценка за экзамен;

@Date datetime - Дата сдачи экзамена;

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

3.Таблица Факультет (dbo. Faculty)

3.1.Удаление данных


Use Университет

Go

Create proc [dbo].[FacultyDelete]

(@ID int,@re int output)@re=0exists (select * from FacultyID_Faculty=@ID)(exists (select * from StudentFaculty=@ID))@re= -1else from FacultyID_Faculty=@IDset @re= -2


3.2.Добавление данных


Use Университет

Go

Create roc [dbo].[FacultyInsert]

(@ShortName nvarchar(10),@FullName nvarchar(100),@re int output)@re=0not exists (select * from FacultyShortName=@ShortName or=@FullName)into Faculty(ShortName,FullName) values(@ShortName,@FullName)set @re= -1


3.3.Обновление данных


Use Университет

Go

Create proc [dbo].[FacultyUpdate]

(@ID int, @ShortName nvarchar(10),@FullName nvarchar(100),@re int output)@re=0exists (select * from FacultyID_Faculty=@ID)exists (select * from Faculty(ShortName=@ShortName or=@FullName) and ID_Faculty<>@ID)@re= -2 FacultyShortName=@ShortName, FullName=@FullNameID_Faculty=@IDset @re= -1

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

@id int - Номер факультета;

@ShortName nvarchar(10) - Краткое название факультета;

@FullName nvarchar(100) - Полное название факультета;

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.


4.Таблица Группа (dbo. Group)

4.1.Удаление данных


Use Университет

Go

Create proc [dbo].[GroupDelete]

(@ID int,@re int output)@re=0exists (select * from [group] where ID_Group=@ID)not exists (Select * from student where [Group]=@ID)from [Group]ID_Group=@IDset @re= -1 set @re= -2


4.2.Добавление данных


Use Университет

Go

Create proc [dbo].[GroupInsert]

(@number nvarchar(4),@speciality nvarchar(6),@re int output)@re=0not exists (Select * from [Group] where Number=@number)exists (select * from speciality where nspec=@speciality)@p int@p=ID_Spec From Speciality where nspec=@specialityinto [Group](number,speciality)(@number,@p)set @re= -2 set @re= -1


4.3.Обновление данных


Use Университет

Go

Create proc [dbo].[GroupUpdate]

(@ID int, @Number nvarchar(4),@speciality nvarchar(6),@re int output)@re=0exists (select * from [group]ID_Group=@ID)exists (select * from [group]Number=@Number and ID_Group<>@ID)@re= -2exists(select * from speciality where nspec=@speciality)@p int@p=ID_Spec from speciality where nspec=@speciality[group]Number=@Number, Speciality=@pID_Group=@IDset @re=-3 set @re= -1


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

@id int - ID группы;

@Number nvarchar(4)-Номер группы;

@speciality nvarchar(6) -Номер специальности;

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

5.Таблица Стипендия (dbo. Grant)

5.1.Удаление данных


Use Университет

Go

Create proc [dbo].[GrantDelete]

(@ID int,@re int output)@re=0exists (Select * from [Grant]ID_Grant=@ID)from [Grant]ID_Grant=@ID

else set @re= -1


5.2.Добавление данных


Use Университет

Go

Create proc [dbo].[GrantInsert]

(@Student nvarchar(5),@volume money,@date datetime,@re int output)exists (Select * from StudentNzach=@Student)@re=0into [Grant](Student,GrantSize,date)(@Student,@volume,@date)set @re= -1


5.3.Обновление данных


Use Университет

Go

Create proc [dbo].[GrantUpdate]

(@ID int,@Student nvarchar(5),@volume money,@date datetime,@re int output)exists (Select * from [Grant]ID_Grant=@ID)

if exists (Select * from StudentNzach=@Student)@re=0[Grant]student=@Student,GrantSize=@volume,date=@dateID_Grant=@ID

else set @re= -2 set @re= -1

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

@id int - ID стипендии;

@Student nvarchar(5)-Номер зачётной книжки студента;

@volume money - Объём стипендии;

@date datetime - Дата начисления стипендии.


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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

6.Таблица Учёная степень (dbo. SDegree)

6.1.Удаление данных


Use Университет

Go

Create proc [dbo].[SDegreeDelete]

(@ID int, @re int output)exists (Select * from SDegreeID_UchStep=@ID)@re=0from SDegreeID_UchStep=@IDset @re= -1


6.2.Добавление данных


Use Университет

Go

Create proc [dbo].[SDegreeInsert]

(@Teachers int,@sdegree nvarchar(50),@date datetime,@re int output)exists (Select * from TeachersNprep=@Teachers)into SDegree(Teachers,SDegree,date)(@Teachers,@sdegree,@date)@re=0set @re= -1


6.3.Обновление данных


Use Университет

Go

Create proc [dbo].[SDegreeUpdate]

(@ID int,@Teachers int,@SDegree nvarchar(50),@date datetime,@re int output)exists (Select * from SDegreeID_UchStep=@ID)

if exists (Select * from TeachersNprep=@Teachers)@re=0SDegreeTeachers=@Teachers,SDegree=@SDegree,date=@dateID_UchStep=@ID

else set @re= -2 set @re= -1

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

@id int - ID учёной степени;

@Teachers int - Номер преподавателя;

@SDegree nvarchar(50)-Наименование учёной степени;

@date datetime - Дата получения учёной степени.


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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

7.Таблица Специальность (dbo. Speciality)

7.1.Удаление данных


Use Университет

Go

Create proc [dbo].[SpecialityDelete]

(@ID int,@re int output)@re=0exists (select * from SpecialityID_Spec=@ID)exists (select * from [Group]Speciality=@ID)@re= -1 from SpecialityID_Spec=@IDset @re= -2


7.2.Добавление данных


Use Университет

Go

Create proc [dbo].[SpecialityInsert]

(@Nspec nvarchar(6),@Name nvarchar(100),@Department nvarchar(10),@StudyCost money,@re int output)@re=0not exists (select * from SpecialityNspec=@Nspec or

[Name]=@Name)exists (Select * from Department ShortName=@Department)@p int@p=ID_Dep from Department where ShortName=@Departmentinto Speciality(Nspec,[Name],Department,StudyCost)(@Nspec,@Name,@p,@StudyCost)set @re= -2 set @re= -1

7.3.Обновление данных


Use Университетproc [dbo].[SpecialityUpdate]

(@ID int,@Nspec nvarchar(6),@Name nvarchar(100),@Department nvarchar(10),@StudyCost money,@re int output)@re=0not exists (select * from Speciality(Nspec=@Nspec or

[Name]=@Name) and ID_Spec<>@ID)exists (select * from Department where ShortName=@Department)@p int@p=ID_Dep from Department where ShortName=@DepartmentSpecialityNspec=@Nspec,[Name]=@Name,Department=@p,StudyCost=@StudyCostID_Spec=@IDset @re=-1 set @re= -2


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

@id int -номер специальности;

@Nspec nvarchar(6) - код специальности;

@Name nvarchar(100) - название специальности;

@Department nvarchar(10) - краткое название выпускающей кафедры;

@StudyCost money - стоимость обучения на специальности

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

8.Таблица Студент (dbo. Student)

8.1.Удаление данных


Use Университет

Go

Create proc [dbo].[StudentDelete]

(@Nzach nvarchar(5),@re int output)@re=0exists (select * from student where Nzach=@Nzach)from Exam where Nzach=@Nzachfrom [Grant] where Student=@Nzachfrom Student where Nzach=@Nzachset @re=-1


8.2.Добавление данных


Use Университет

Go

Create proc [dbo].[StudentInsert]

(@Nzach nvarchar(5),@FIO nvarchar(50),@group nvarchar(4),@faculty nvarchar(10),@fo nvarchar(10),@factory nvarchar(100),@ispay bit,@re int Output)@re=0not exists (select * from student where Nzach=@Nzach)exists(select * from [Group] where Number=@group)exists (select * from Faculty where ShortName=@faculty)@a int,@b int@a=ID_Group from [Group] where Number=@group@b=ID_Faculty from Faculty where ShortName=@facultyinto Student(@Nzach,@FIO,@b,@a,@fo,@factory,@ispay)set @re=-3 set @re=-2 set @re=-1


8.3.Обновление данных


Use Университет

Go

Create proc [dbo].[StudentUpdate]

(@Nzach nvarchar(5),@FIO nvarchar(50),@group nvarchar(4),@faculty nvarchar(10),@fo nvarchar(10),@factory nvarchar(100),@ispay bit,@re int Output)@re=0exists(select * from [Group] where Number=@group)exists (select * from Faculty where ShortName=@faculty)@a int,@b int@a=ID_Group from [Group] where Number=@group@b=ID_Faculty from Faculty where ShortName=@facultyStudentFIO=@FIO,Faculty=@b,[Group]=@a,StudyForm=@fo,Factory=@factory,IsPay=@ispayNzach=@Nzachset @re=-3 set @re=-2

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

@Nzach nvarchar(5)- номер зачётной книжки;

@FIO nvarchar(50) - ФИО студента;

@group nvarchar(4) - номер группы студента;

@faculty nvarchar(10) - краткое навание факультета студента;

@fo nvarchar(10) - форма обучения;

@factory nvarchar(100) - предприятие, оплачивающее обучение (для студентов по целевому набору)

@ispay bit - платит ли студент за обучение


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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

9.Таблица Предмет (dbo. Subject)

9.1.Удаление данных


Use Университет

Go

Create proc [dbo].[SubjectDelete]

(@Nsubject int,@re int output)@re=0exists (select * from subjectNsubject=@Nsubject)(exists (select * from TeachSubject=@Nsubject))(exists (select * from ExamNsubject=@Nsubject))@re= -1else from subjectNsubject=@Nsubjectset @re= -2


9.2.Добавление данных


Use Университет

Go

Create proc [dbo].[SubjectInsert]

(@Name nvarchar(50),@re int output)@re=0not exists (select * from Subject[Name]=@Name)into Subject ([Name]) values(@Name)set @re= -1


9.3.Обновление данных

Use Университет

Go

Create proc [dbo].[SubjectUpdate]

(@ID int,@name nvarchar(50), @re int output)@re=0not exists (select * from Subject where [name]=@name)Subject[Name]=@nameNsubject=@IDset @re=-1

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

@ID int - Номер предмета;

@name nvarchar(50) - Название предмета.


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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

10.Таблица Преподает (dbo. Teach)

10.1.Удаление данных


Use Университет

Go

Create proc [dbo].[TeachDelete]

(@ID int, @re int output)@re=0exists(select * from teach where ID_Teach=@ID)from teach where ID_Teach=@IDset @re=-1

10.2.Добавление данных


Use Университет

Go

Create proc [dbo].[TeachInsert]

(@prep char(50),@Subject char(50),@date datetime, @re int output)@re=0exists(select * from teachers where FIO=@prep)exists(select * from subject where [Name]=@Subject)@a int,@b int@a=Nsubject from subject where [Name]=@Subject@b=Nprep from teachers where FIO=@prepnot exists (select * from Teach where (subject=@a) and (Teachers=@b) and (date=@date))into teach (Subject,Teachers,date)(@a,@b,@date)set @re=-2 set @re=-3 set @re=-1


10.3.Обновление данных


Use Университет

Go

Create proc [dbo].[TeachUpdate]

(@ID int,@prep char(50),@Subject char(50),@date datetime, @re int output)@re=0exists(select * from teach where ID_Teach=@ID)exists(select * from teachers where FIO=@prep)exists(select * from subject where [Name]=@Subject)@a int,@b int@a=Nsubject from subject where [Name]=@Subject@b=Nprep from teachers where FIO=@prepnot exists (select * from Teach where (subject=@a)and(Teachers=@b)and(date=@date))teachSubject=@a,Teachers=@b,date=@dateID_Teach=@IDset @re=-4 set @re=-3 set @re=-1 set @re=-2

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

@ID int - Номерзаписи о преподавании;

@prep char(50) - ФИО преподавателя;

@Subject char(50) - название предмета;

@date datetime - Дата.


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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

11.Таблица Преподаватель (dbo. Teachers)

11.1.Удаление данных

Use Университет

Goproc [dbo].[TeachersDelete]

(@ID int, @re int output)@re=0exists (select * from Teachers where Nprep=@ID)not exists (select * from Teach where Teachers=@ID)from SDegree where Teachers=@IDfrom salary where Teachers=@IDfrom Teachers where Nprep=@IDset @re=-2 set @re=-1


11.2.Добавление данных


Use Университет

Go

Create proc [dbo].[TeachersInsert]

(@FIO nvarchar(50),@Department nvarchar(10),@Dolznost nvarchar(50),@DatePrin datetime, @re int output)@re=0exists(select * from Department where ShortName=@Department)@p int@p=ID_Dep from Department where ShortName=@Departmentinto teachers (FIO,Department,Dolznost,DatePrin)(@FIO,@p,@Dolznost,@DatePrin)set @re=-1


11.3.Обновление данных


Use Университет

Go

Create proc [dbo].[TeachersUpdate]

(@ID int,@FIO nvarchar(50),@Department nvarchar(10),@Dolznost nvarchar(50),@DatePrin datetime, @re int output)@re=0exists(select * from teachers where Nprep=@ID)exists(select * from Department where ShortName=@Department)@p int@p=ID_Dep from Department where ShortName=@DepartmentteachersFIO=@FIO,Department=@p,Dolznost=@Dolznost,DatePrin=@DatePrinNprep=@IDset @re=-1 set @re=-2


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

@ID int - Номер преподавателя;

@FIO nvarchar(50)- ФИО преподавателя;

@Department nvarchar(10) - краткое название кафедры, где преподаватель работает

@Dolznost nvarchar(50) - должность, занимаема преподавателем

@DatePrin datetime - дата принятия на работу

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

12.Таблица Зарплата (dbo. Salary)

12.1.Удаление данных


Use Университет

Go

Create proc [dbo].[SalaryDelete]

(@ID int,@re int output)exists (Select * from salaryID_Zarplata=@ID)from salaryID_Zarplata=@ID@re=0set @re= -1


12.2.Добавление данных


Use Университет

Go

Create proc [dbo].[SalaryInsert]

(@Teachers int,@volume money,@date datetime,@re int output)exists (Select * from TeachersNprep=@Teachers)@re=0into Salary(Teachers,Volume,date)(@Teachers,@volume,@date)set @re= -1


12.3.Обновление данных


Use Университет

Go

Create proc [dbo].[SalaryUpdate]

(@ID int,@Teachers int,@volume money,@date datetime,@re int output)exists (Select * from salaryID_Zarplata=@ID)

if exists (Select * from TeachersNprep=@Teachers)@re=0SalaryTeachers=@Teachers,volume=@volume,date=@dateID_Zarplata=@ID

else set @re= -2 set @re= -1


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

@ID int - Номер записи о зарплате;

@Teachers int - Номер преподавателя

@volume money - размер зарплаты

@date datetime - дата начисления

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

13.Идентификация пользователей

13.1.Идентификация студента

proc [dbo].[StuPass]

(@pass nvarchar(5),@re int output,@FIO nvarchar(50)output)@re=0exists (select * from student where Nzach=@pass)@FIO=FIO from Student where Nzach=@pass

else set @re=-1


13.2.Идентификация преподавателя

proc [dbo].[TeachPass]

(@pass int,@re int output,@FIO nvarchar(50) output)@re=0exists (select * from teachers where Nprep=@pass)@FIO = FIO from TEACHERS where Nprep=@pass

else set @re=-1


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

@pass nvarchar(5)/ @pass int - пароль пользователя (соответственно номер зачётной книжки и номер преподавателя)

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

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

@FIO nvarchar(50) - ФИО пользователя


3. РАЗРАБОТКА КЛИЕНТСКОЙ ЧАСТИ ИНФОРМАЦОННОЙ СИСТЕМЫ


3.1 Организация взаимодействия клиентской программы с БД


Для доступа к базе данных использовалась технология ADO.NET. Экземпляры компонентов доступа к БД, применённые в данном проекте, приведены в таблице 1.


Таблица 1

Тип компонента и его описаниеЭкземпляры компонентовНазначениеDataConnectionDialog Вызывает диалоговое окно с настройками для подключения _dialog Настроить подключение для синхронизации с базой данныхSqlConnection Предоставляет уникальный сеанс связи с источником данных SQL Server. conDBУстановка соединения с сервером. Используется в коде всей программы. SqlCommand Представляет инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server. com Выполнение запросов к БД или вызов хранимых процедур.SqlDataAdapter Представляет набор выполняемых над данными команд и подключения базы данных, которые используется для заполнения и обновления базы данных SQL Server. da Извлечение и сохранение данных в БД. Используется для создания сложных наборов данных (из нескольких таблиц).DataSet Представляет собой расположенный в памяти кэш данных, загружаемых из источника данных. dsХранит данные из БД в виде таблиц для дальнейшего их отображения компонентом DataGridViewDataGridView предоставляет настраиваемую таблицу для отображения данных.dataGridView1 - dataGridView20 Отображение данных таблиц созданной базы данных BindingNavigator Представляет собой панель для редактирования данных в таблицахBindingNavigator1 - BindingNavigator8Необходимы для навигации в таблицах БД.3.2 Разработка форм


Клиентская программа работы с БД была создана в стиле MDI-приложения.

При запуске программы на экран выводится форма заставки zast с логотипом программы.

Форма представлена в файлах: zast.cs, zast.Designer.cs, zast.resx.

Для авторизации пользователя создана форма Password. Список компонентов данной формы и их назначение представлены следующим образом:

·«Войти» - кнопка подтверждения авторизации;

·«Выход» - кнопка для выхота из программы;

·Переключатели «Абитуриент», «Студент», «Преподаватель», «Ректор» и «Администратор» - для выбора типа пользователя;

·TextBoxPassword - поле для ввода пароля.

Форма представлена в файлах: Password.cs, Password.Designer.cs, Password.resx.

После входа загружается главное (родительское) окно программы, в пределах которого и будут отображаться необходимые формы. Основным элементом формы является «Главное меню», обеспечивающее доступ к основным функциям программы.

Форма представлена в файлах: MainForm.cs, MainForm.Designer.cs, MainForm.resx.

Если вход осуществил «администратор», на экране отобразится форма EditForm. Форма состоит из вкладок, на каждой из которых размещены элементы:

·Переключатели «Добавить запись», «Изменить запись», «Удалить запись» для определения типа действий, выполняемых над базой данных;

·Поля ввода - компоненты типа TextBox - для ввода данных;

·Таблица просмотра информации базы данных (компоненты dataGridView);

·Кнопка для выполнения действий над базой данных.

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

Форма представлена в файлах EditForm.cs, EditForm.Designer.cs, EditForm.resx.

Если вход осуществил «Абитуриент», на экране отобразится форма AbiturientForm. Форма состоит из вкладок, на каждой из которых размещены элементы:

·Таблица просмотра информации базы данных (компоненты dataGridView);

·Панель навигации по базе данных (компонент BindingNavigator);

·Выпадающий список для выбора поля, по которому будет произведен поиск.

Форма представлена в файлах: AbiturientForm.cs, AbiturientForm.Designer.cs, AbiturientForm.resx.

Если вход осуществил «Студент», на экране отобразится форма StudForm. Форма состоит из вкладок, на каждой из которых размещены элементы:

·Таблица просмотра информации базы данных (компоненты dataGridView);

·Панель навигации по базе данных (компонент BindingNavigator);

На вкладке «Моя успеваемость» расположен выпадающий список для выбора поля, по которому будет произведен поиск.

Форма представлена в файлах StudForm.cs, StudForm.Designer.cs, StudForm.resx.

Если вход осуществил «Преподаватель», на экране отобразится форма TeacherForm. Форма состоит из вкладок, на каждой из которых помещены следующие элементы:

·Таблица просмотра информации базы данных (компоненты dataGridView);

·Панель навигации по базе данных (компонент BindingNavigator);

Форма представлена в файлах TeacherForm.cs, TeacherForm.Designer.cs, TeacherForm.resx.

Если вход осуществлён «Ректором», на экране отобразится форма RectorForm. Форма состоит из вкладок, на каждой из которых помещены следующие элементы:

·Таблица просмотра информации базы данных (компоненты dataGridView);

·Панель навигации по базе данных (компонент BindingNavigator);

·Выпадающий список для выбора поля, по которому будет произведен поиск.

Форма представлена в файлах RectorForm.cs, RectorForm.Designer.cs, RectorForm.resx.

При выборе любого подпункта из меню «Отчёт» отобразится форма ReportsForm, обеспечивающая вывод отчета и возможность его распечатки. Форма содержит в себе единственный элемент - объект для просмотра отчетов (ReportViewer).

Форма представлена в файлах: ReportsForm.cs, ReportsForm.Designer.cs, ReportsForm.resx.


3.3 Разработка отчетов


В рамках данной информационной системы были разработаны следующие отчеты:.rpt - список студентов университета (доступно пользователю, вошедшему как «Ректор»);.rpt - список преподавателей университета (доступно пользователю, вошедшему как «Ректор»);.rpt - успеваемость вошедшего в программу студента.


3.4 Разработка сценария инсталляции клиентской программы


Для разработки дистрибутива клиентского приложения была использована программа Inno Setup 4.2.7. Рассмотрим структуру полученного скрипта.

В секции [Setup] указаны имя приложения, его версия, путь установки по умолчанию и некоторые другие параметры. В секции [Tasks] указаны дополнительные возможности, предоставляемые пользователю в процессе установки, а именно: создание ярлыка приложения на рабочем столе или на панели быстрого запуска. В секции [Files] определены пути к файлам, которые будут распакованы в процессе установки. Секция [Icons] показывает какие иконки будут добавлены для приложения. В секции [Run] указана настройка, предоставляющая пользователю возможность запуска приложения сразу после установки. Полный текст данного скрипта приведен в Приложении 3.

Для создания базы данных на сервере необходимо запустить скрипт StudentsAndTeachers.sql (см. Приложение 1).


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


Чтобы запустить программу, выполните двойной щелчок левой клавишей мыши по значку StudentAndTeashers.exe. На экране появится заставка программы. Затем - окно выбора соединения (рисунок 31).

Рисунок 31 - Окно выбора соединения.


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


Рисунок 32 - Форма авторизации.


На форме авторизации необходимо ввести пароль. Паролем является номер зачётной книжки - для пользователя «студент», порядковый номер - для пользователя «преподаватель», пароль admin - для пользователя «администратор», пароль rector - для пользователя «ректор». Для пользователя «абитуриент» пароль не требуется. В случае ввода существующего пароля будет выведено сообщение приветствия и откроется главное окно программы, в противном случае вход будет запрещен (рисунок 33). Пользователь сможет снова попытаться ввести пароль на форме авторизации.


Рисунок 33 - Введен неверный пароль.


Введем пароль одного из студентов: 05123. Откроется окно пользователя «Студент» (рисунок 34).

Вошедший в программу студент будет видеть информацию в таблицах о своей успеваемости и стипендии.


Рисунок 34 - Окно «Студент»

Введем в поле параметра поиска строку Инф, в результате чего увидим аттестацию по предмету Информатика (рисунок 35).


Рисунок 35 - Успеваемость студента по предмету «Информатика»


Далее в главном меню выберем пункт Отчет ->Моя успеваемость. В результате откроется окно для просмотра успеваемости студента в виде отчета (рисунок 36).


Рисунок 36 - Просмотр отчёта об успеваемости.


Теперь зайдем в программу как «Администратор». Администратор, в отличие от студента, имеет возможность редактирования и сохранения результатов всей базы данных «Университет». Именно от этого человека зависит правильность корректировки информации, доводимой до студентов и преподавателей. Для того чтобы зайди в программу с правами администратора в главном меню программы выберем пункт «Файл» - «Сменить пользователя». В появившемся окне авторизации выберем пользователя «Администратор» и введем пароль: admin. Перед нами появится окно «Редактирование» (Рисунок 37).


Рисунок 37 - Окно «Редактирование»

Само окно «Редактирование» состоит из двенадцати вкладок, на каждой из которых размещены таблицы соответствующей предметной области.

Перейдем на вкладку «Факультеты» и выполним добавление факультета в базу данных, для чего введём необходимые данные в соответствующие поля и нажмем кнопку «Добавить». В результате в основную таблицу добавятся введённые данные. По аналогии добавляются записи на остальных вкладках. Также данные таблиц можно изменять и удалять.

Окно, отображаемое для пользователя «Абитуриент», представлено на рисунке 38. Абитуриент может просматривать информацию о специальностях, кафедрах и факультетах университета.


Рисунок 38 - Окно «Абитуриент».


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


Рисунок 39 - Окно «Ректор»


Ректор может просматривать полную информацию о преподавателях и студентах. Информация может быть представлена как с помощью таблицы, так и в виде отчётов, которые вызываются с помощью соответствующего пункта меню «Отчёт». Отчёт о преподавателях университета представлен на рисунке 40.


Рисунок 40 - Просмотр отчёта о преподавателях.


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

Рисунок 41 - Окно «Преподаватель»


Чтобы закрыть программу StudentsAndTeachers, необходимо выполнить команду меню «Файл» - «Выход», либо нажать на крестик в правом верхнем углу главного окна приложения.


Заключение


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

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


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


1.Благодаров А.В., лекции «Клиент-серверные приложения БД», 2010 г

2.Вьера Р. «SQL SERVER 2000. Программирование», 2 части, 2004г.

.Троелсен Э. «C# и платформа .NET 3.0, специальное издание», СПб.: Питер, 2008. - 1456 с.

.Библиотека MSDN для Visual Studio 2005.


Приложение 1: SQL-скрипт для создания БД


USE [master]

/****** Объект: Database [Университет] Дата сценария: 04/18/2011 16:40:34 ******/

CREATE DATABASE [Университет] ON PRIMARY

( NAME = N'Университет', FILENAME = N'E:\USERS\STUD\DB\840\Университет.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )ON

( NAME = N'Университет_log', FILENAME = N'E:\USERS\STUD\DB\840\Университет_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)Университет

/*==============================================================*/

/* DBMS name: Microsoft SQL Server 2000 */

/* Created on: 04.06.2011 0:46:59 */

/*==============================================================*/

/*==============================================================*/

/* Table: Department */

/*==============================================================*/table Department (_Dep int identity,nvarchar(100) not null,nvarchar(10) not null

)table Departmentconstraint PK_DEPARTMENT primary key nonclustered (ID_Dep)table Departmentconstraint AK_IDENTIFIER_2_DEPARTME unique (FullName)table Departmentconstraint AK_IDENTIFIER_3_DEPARTME unique (ShortName)

/*==============================================================*/

/* Table: Exam */

/*==============================================================*/table Exam (_Exam int identity,nvarchar(5) not null,int not null,int not null,datetime not null

)table Examconstraint CKC_MARK_EXAM check (Mark between 2 and 5)table Examconstraint PK_EXAM primary key nonclustered (ID_Exam)

/*==============================================================*/

/* Table: Faculty */

/*==============================================================*/table Faculty (_Faculty int identity,nvarchar(100) not null,nvarchar(10) not null

)table Facultyconstraint PK_FACULTY primary key nonclustered (ID_Faculty)table Facultyconstraint AK_IDENTIFIER_2_FACULTY unique (FullName)table Facultyconstraint AK_IDENTIFIER_3_FACULTY unique (ShortName)

/*==============================================================*/

/* Table: "Grant" */

/*==============================================================*/table "Grant" (_Grant int identity,nvarchar(5) not null,money not null default 1200,datetime not null

)table "Grant"constraint PK_GRANT primary key nonclustered (ID_Grant)

/*==============================================================*/

/* Table: "Group" */

/*==============================================================*/table "Group" (_Group int identity,nvarchar(4) not null,nvarchar(6) not null

)table "Group"constraint PK_GROUP primary key nonclustered (ID_Group)table "Group"constraint AK_IDENTIFIER_2_GROUP unique (Number)

/*==============================================================*/

/* Table: SDegree */

/*==============================================================*/table SDegree (_UchStep int identity,int not null,nvarchar(50) not null,datetime not null

)table SDegreeconstraint PK_SDEGREE primary key nonclustered (ID_UchStep)

/*==============================================================*/

/* Table: Salary */

/*==============================================================*/table Salary (_Zarplata int identity,int not null,money not null,datetime not null

)table Salaryconstraint PK_SALARY primary key nonclustered (ID_Zarplata)

/*==============================================================*/

/* Table: Speciality */

/*==============================================================*/table Speciality (_Spec int identity,nvarchar(6) not null,nvarchar(100) not null,nvarchar(10) not null,money not null

)table Specialityconstraint PK_SPECIALITY primary key nonclustered (ID_Spec)

table Specialityconstraint AK_IDENTIFIER_2_SPECIALI unique (Name)

table Specialityconstraint AK_IDENTIFIER_3_SPECIALI unique (Nspec)


/*==============================================================*/

/* Table: Student */

/*==============================================================*/table Student (nvarchar(5) not null,nvarchar(50) not null,int not null,

"Group" int not null,text not null,text null,bit not null

)table Studentconstraint PK_STUDENT primary key nonclustered (Nzach)

/*==============================================================*/

/* Table: Subject */

/*==============================================================*/table Subject (int not null,nvarchar(50) not null

)table Subjectconstraint PK_SUBJECT primary key nonclustered (Nsubject)

table Subjectconstraint AK_IDENTIFIER_2_SUBJECT unique (Name)

/*==============================================================*/

/* Table: Teach */

/*==============================================================*/table Teach (_Teach int identity,int not null,int not null,datetime not null

)

table Teachconstraint PK_TEACH primary key nonclustered (ID_Teach)


/*==============================================================*/

/* Table: Teachers */

/*==============================================================*/table Teachers (int not null,nvarchar(50) not null,int not null,nvarchar(50) not null,datetime not null

)

table Teachersconstraint PK_TEACHERS primary key nonclustered (Nprep)

table Examconstraint FK_EXAM_IN_SUBJECT foreign key (Subject)Subject (Nsubject)update cascade

table Examconstraint FK_EXAM_SDAETSA_STUDENT foreign key (Student)Student (Nzach)update cascade

table "Grant"constraint FK_GRANT_PAY_STUDENT foreign key (Student)Student (Nzach)update cascade

table "Group"constraint FK_GROUP_BELONGS_SPECIALI foreign key (Speciality)Speciality (ID_Spec)update cascade

table SDegreeconstraint "FK_SDEGREE_IS AT_TEACHERS" foreign key (Teachers)Teachers (Nprep)update cascade

table Salaryconstraint FK_SALARY_GIVEN1_TEACHERS foreign key (Teachers)Teachers (Nprep)update cascade

table Specialityconstraint FK_SPECIALI_GRADUATE_DEPARTME foreign key (Department)Department (ID_Dep)update cascade

table Studentconstraint FK_STUDENT_CONCERNS_GROUP foreign key ("Group")"Group" (ID_Group)update cascade

table Studentconstraint FK_STUDENT_REGISTERE_FACULTY foreign key (Faculty)Faculty (ID_Faculty)update cascade

table Teachconstraint FK_TEACH_TEACH_SUBJECT foreign key (Subject)Subject (Nsubject)update cascade

table Teachconstraint FK_TEACH_TEACH2_TEACHERS foreign key (Teachers)Teachers (Nprep)update cascade

table Teachersconstraint FK_TEACHERS_WORKS_DEPARTME foreign key (Department)Department (ID_Dep)update cascade

go


Приложение 2: исходный текст клиентской программы

.cs:System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.SqlClient;

StudentAndTeashers

{

partial class MainForm : Form

{

static SqlConnection conDB = new SqlConnection();static string constring;enum UserType

{= 0,= 1,= 2,= 3,= 4,= 5

}enum ReportSelected

{= 0,= 1,=2

}

static UserType user;static ReportSelected rs;

MainForm()

{

();

}

void Edit_Click(object sender, EventArgs e)

{


//создаём формуEF = new EditForm();.Show();


}

void Exit_Click(object sender, EventArgs e)

{();

}

void Help_Click(object sender, EventArgs e)

{

//создаём формуAP = new AboutProgramm();.Show();

}

void MainForm_Load(object sender, EventArgs e)

{Z = new zast();.ShowDialog();.Data.ConnectionUI.DataConnectionDialog _dialog = new Microsoft.Data.ConnectionUI.DataConnectionDialog();.Data.ConnectionUI.DataSource.AddStandardDataSources(_dialog);.Data.ConnectionUI.DataConnectionDialog.Show(_dialog);= _dialog.ConnectionString;(_dialog.ConnectionString != "")

{.ConnectionString = _dialog.ConnectionString;P = new Password();.ShowDialog();(P.DialogResult != DialogResult.OK) Application.Exit();

(user)

{UserType.Admin:

отчетToolStripMenuItem.Visible = false;EF = new EditForm();.MdiParent = this;.Show();;UserType.Student:SF = new StudForm();

отчетToolStripMenuItem.Visible = true;

студентыToolStripMenuItem.Visible = false;

мояУспеваемостьToolStripMenuItem.Visible = true;

преподавателиToolStripMenuItem.Visible = false;.MdiParent = this;.Show();;UserType.Teacher:TF = new TeacherForm();

отчетToolStripMenuItem.Visible = false;.MdiParent = this;.Show();;UserType.Rector:R = new RectorForm();

студентыToolStripMenuItem.Visible = true;

преподавателиToolStripMenuItem.Visible = true;

мояУспеваемостьToolStripMenuItem.Visible = false;

отчетToolStripMenuItem.Visible = true;.MdiParent = this;.Show();;UserType.Abiturient:AbF = new AbiturientForm();

отчетToolStripMenuItem.Visible = false;.MdiParent = this;.Show();;: MessageBox.Show("Вы не являетесь зарегестрированным пользователем! \n Попробуйте зайти еще раз", "Вход не произведен", MessageBoxButtons.OK, MessageBoxIcon.Error);;

}.WindowState = FormWindowState.Maximized;

}

{.Show("Сервер не выбран! \n Приложение будет закрыто", "Вход не произведен", MessageBoxButtons.OK, MessageBoxIcon.Error);.Exit();

}

}

void сменитьПользователяToolStripMenuItem_Click(object sender, EventArgs e)

{(Form f in MdiChildren).Close();P = new Password();.ShowDialog();(P.DialogResult != DialogResult.OK) Application.Exit();

(user)

{UserType.Admin:

отчетToolStripMenuItem.Visible = false;EF = new EditForm();.MdiParent = this;.Show();;UserType.Student:SF = new StudForm();

отчетToolStripMenuItem.Visible = true;

студентыToolStripMenuItem.Visible = false;

мояУспеваемостьToolStripMenuItem.Visible = true;

преподавателиToolStripMenuItem.Visible = false;.MdiParent = this;.Show();;UserType.Teacher:TF = new TeacherForm();

отчетToolStripMenuItem.Visible = false;.MdiParent = this;.Show();;UserType.Rector:R = new RectorForm();

студентыToolStripMenuItem.Visible = true;

преподавателиToolStripMenuItem.Visible = true;

отчетToolStripMenuItem.Visible = true;.MdiParent = this;.Show();;UserType.Abiturient:AbF = new AbiturientForm();

отчетToolStripMenuItem.Visible = false;.MdiParent = this;.Show();;: MessageBox.Show("Вы не являетесь зарегестрированным пользователем! \n Попробуйте зайти еще раз", "Вход не произведен", MessageBoxButtons.OK, MessageBoxIcon.Error);;

}

}

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

{.Exit();

}

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

{About = new AboutProgramm();.MdiParent = this;.Show();

}void студентыToolStripMenuItem_Click(object sender, EventArgs e)

{= ReportSelected.Students;rep = new ReportsForm();.MdiParent = this;.Show();

}

void преподавателиToolStripMenuItem_Click(object sender, EventArgs e)

{= ReportSelected.Teachers;rep = new ReportsForm();.MdiParent = this;.Show();

}

void мояУспеваемостьToolStripMenuItem_Click(object sender, EventArgs e)

{= ReportSelected.OneStud;rep = new ReportsForm();.MdiParent = this;.Show();

}

}

}.cs:System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Data.SqlClient;System.Windows.Forms;

StudentAndTeashers

{partial class EditForm : Form

{

// public static SqlConnection conDB = new SqlConnection();

// string constring = "Data Source=HAMSTER-ПК\\SQLEXPRESS;Initial Catalog=Университет;User ID=sa; Password=sa;";EditForm()

{();

}


void EditForm_Load(object sender, EventArgs e)

{.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.sDegreeTableAdapter.Fill(this.университетDataSet.SDegree);.salaryTableAdapter.Fill(this.университетDataSet.Salary);.grantTableAdapter.Fill(this.университетDataSet.Grant);.teachersTableAdapter.Fill(this.университетDataSet.Teachers);.groupTableAdapter.Fill(this.университетDataSet.Group);.specialityTableAdapter.Fill(this.университетDataSet.Speciality);.facultyTableAdapter.Fill(this.университетDataSet.Faculty);.departmentTableAdapter.Fill(this.университетDataSet.Department);.studentTableAdapter.Fill(this.университетDataSet.Student);.teachTableAdapter.Fill(this.университетDataSet.Teach);.subjectTableAdapter.Fill(this.университетDataSet.Subject);.examTableAdapter.Fill(this.университетDataSet.Exam);.SelectedIndex = 0;

.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}void ButtonUpdate_Click(object sender, EventArgs e)

{

}void RBAdd_Click(object sender, EventArgs e)

{.Clear();.Clear();.Clear();.Clear();.Clear();.Text = "Добавить";.Visible=true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBEdit_Click(object sender, EventArgs e)

{.Text ="Изменить";.Visible = false;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = false;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDelete_Click(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible =false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible =false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}void ButtonAdd_Click(object sender, EventArgs e)

{(RBAdd.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE StudentInsert @Nzach,@FIO,@group,@faculty,@fo,@factory,@ispay, @re output";

{.Parameters.Add("@Nzach", SqlDbType.NVarChar, 5).Value = TextNzach.Text;

.Parameters.Add("@FIO", SqlDbType.NVarChar, 50).Value = TextFIO.Text;.Parameters.Add("@group", SqlDbType.NVarChar, 4).Value = TextGroup.Text;.Parameters.Add("@faculty", SqlDbType.NVarChar, 10).Value = TextFaculty.Text;.Parameters.Add("@fo", SqlDbType.NVarChar, 10).Value = TextStudyForm.Text;.Parameters.Add("@factory", SqlDbType.NVarChar, 100).Value = TextFactory.Text;(comboBoxPay.SelectedIndex == 0).Parameters.Add("@ispay", SqlDbType.Bit).Value = "true";.Parameters.Add("@ispay", SqlDbType.Bit).Value = "False";.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-2:.Show("Нет такой группы", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-1:.Show("Запись с таким номером зачетной книжки уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Нет такого факультета", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDelete.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE StudentDelete @Nzach,@re output ";

// try

// {.Parameters.Add("@Nzach", SqlDbType.NVarChar, 5).Value = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нет такой записи", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBEdit.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE StudentUpdate @Nzach,@FIO,@group,@faculty,@fo,@factory,@ispay, @re output";

{.Parameters.Add("@Nzach", SqlDbType.NVarChar, 5).Value = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@FIO", SqlDbType.NVarChar, 50).Value = TextFIO.Text;.Parameters.Add("@group", SqlDbType.NVarChar, 4).Value = TextGroup.Text;.Parameters.Add("@faculty", SqlDbType.NVarChar, 10).Value = TextFaculty.Text;.Parameters.Add("@fo", SqlDbType.NVarChar, 10).Value = TextStudyForm.Text;.Parameters.Add("@factory", SqlDbType.NVarChar, 100).Value = TextFactory.Text;(comboBoxPay.SelectedIndex == 0).Parameters.Add("@ispay", SqlDbType.Bit).Value = "true";.Parameters.Add("@ispay", SqlDbType.Bit).Value = "false";.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-2:.Show("Нет такой группы", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-1:.Show("Запись с таким номером зачетной книжки уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Нет такого факультета", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.studentTableAdapter.Fill(this.университетDataSet.Student);

}


void ButtonConnect_Click(object sender, EventArgs e)

{

}

void ButtonExit_Click(object sender, EventArgs e)

{();

}

void RBAddDepartament_Click(object sender, EventArgs e)

{.Text = "Добавить запись";.Text = "";.Text = "";.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}void RBDeleteDepartament_Click(object sender, EventArgs e)

{.Text = "Удалить запись";.Text = "";.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void ButtonDepartamentEdit_Click(object sender, EventArgs e)

{(RBAddDepartament.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE DepartmentInsert @ShortName ,@FullName, @re output";

{((textDepartamentShortName.Text != "") & (textDepartamentFullName.Text != ""))

{.Parameters.Add("@ShortName", SqlDbType.NVarChar, 10).Value = textDepartamentShortName.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@FullName", SqlDbType.NVarChar, 100).Value = textDepartamentFullName.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Запись о кафедре с таким названием уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteDepartament.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE DepartmentDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = DepertamentGridView.Rows[DepertamentGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нельзя удалить - на кафедре есть преподаватели или специальности!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBEditDepartament.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE DepartmentUpdate @ID, @ShortName ,@FullName, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = DepertamentGridView.Rows[DepertamentGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@ShortName", SqlDbType.NVarChar, 10).Value = textDepartamentShortName.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@FullName", SqlDbType.NVarChar, 100).Value = textDepartamentFullName.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -2)

{.Show("Кафедра с таким названием уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}


{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.departmentTableAdapter.Fill(this.университетDataSet.Department);


}

void RBAddSalary_CheckedChanged(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();.Clear();

}

void RBUpdateSalary_CheckedChanged(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteSalary_CheckedChanged(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void buttonSalary_Click(object sender, EventArgs e)

{(RBAddSalary.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SalaryInsert @Teachers ,@volume, @Date, @re output";

{.Parameters.Add("@Teachers", SqlDbType.Int).Value = textSalaryTeachers.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@volume", SqlDbType.Money).Value = textSalaryVolume.Text;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textSalaryDate.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -2)

{.Show("Введенного преподавателя не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}


}(RBDeleteSalary.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SalaryDelete @ID,@re output ";

{.Parameters.Add("@ID", SqlDbType.Int).Value = SalaryGridView.Rows[SalaryGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Такой записи не существует!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateSalary.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SalaryUpdate @ID,@Teachers ,@volume, @Date, @re output";

{.Parameters.Add("@Teachers", SqlDbType.Int).Value = textSalaryTeachers.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters.Add("@volume", SqlDbType.Money).Value = textSalaryVolume.Text;.Parameters.Add("@ID", SqlDbType.Int).Value = SalaryGridView.Rows[SalaryGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textSalaryDate.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -2)

{.Show("Введенного преподавателя не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}


{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.salaryTableAdapter.Fill(this.университетDataSet.Salary);


}

void RBAddGrant_CheckedChanged(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();.Clear();

}

void RBUpdateGrant_CheckedChanged(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteGrant_CheckedChanged(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void buttonGrant_Click(object sender, EventArgs e)

{


}

void RBDeleteGrant_CheckedChanged_1(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void RBUpdateGrant_CheckedChanged_1(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void buttonGrant_Click_1(object sender, EventArgs e)

{(RBAddGrant.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE GrantInsert @Student ,@volume, @Date, @re output";

{.Parameters.Add("@Student", SqlDbType.NVarChar, 5).Value = textGrantStudent.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@volume", SqlDbType.Money).Value = textGrantSize.Text;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textGrantDate.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Введенного студента не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}


}(RBDeleteGrant.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE GrantDelete @ID,@re output ";

{.Parameters.Add("@ID", SqlDbType.Int).Value = GrantGridView.Rows[GrantGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Такой записи не существует!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateGrant.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE GrantUpdate @ID,@Student ,@volume, @Date, @re output";

{.Parameters.Add("@Student", SqlDbType.NVarChar, 5).Value = textGrantStudent.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters.Add("@volume", SqlDbType.Money).Value = textGrantSize.Text;.Parameters.Add("@ID", SqlDbType.Int).Value = GrantGridView.Rows[GrantGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textGrantDate.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -2)

{.Show("Введенного студента не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}


{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.grantTableAdapter.Fill(this.университетDataSet.Grant);

}

void RBAddTeachers_CheckedChanged(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();.Clear();.Clear();

}

void RBUpdateTeachers_CheckedChanged(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteTeachers_CheckedChanged(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void buttonTeachers_Click(object sender, EventArgs e)

{(RBAddTeachers.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachersInsert @FIO ,@Department, @Dolznost,@DatePrin, @re output";

{.Parameters.Add("@FIO", SqlDbType.NVarChar, 50).Value = textTeachersFIO.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Department", SqlDbType.NVarChar, 10).Value = textTeachersDepartament.Text;.Parameters.Add("@Dolznost", SqlDbType.NVarChar, 50).Value = textTeachersDolznost.Text;.Parameters.Add("@DatePrin", SqlDbType.DateTime).Value = textTeachersDatePrin.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Введенной кафедры не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteTeachers.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachersDelete @ID,@re output";.Parameters.Add("@ID", SqlDbType.Int).Value = TeachersGridView.Rows[TeachersGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Введенного преподавателя не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateTeachers.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachersUpdate @ID,@FIO ,@Department, @Dolznost,@DatePrin, @re output";

{.Parameters.Add("@FIO", SqlDbType.NVarChar, 50).Value = textTeachersFIO.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Department", SqlDbType.NVarChar, 10).Value = textTeachersDepartament.Text;.Parameters.Add("@Dolznost", SqlDbType.NVarChar, 50).Value = textTeachersDolznost.Text;.Parameters.Add("@ID", SqlDbType.Int).Value = TeachersGridView.Rows[TeachersGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@DatePrin", SqlDbType.DateTime).Value = textTeachersDatePrin.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Введенной кафедры не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.teachersTableAdapter.Fill(this.университетDataSet.Teachers);


}

void RBAddDepartament_CheckedChanged(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();

}

void RBEditDepartament_CheckedChanged(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteDepartament_CheckedChanged(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void buttonFaculty_Click(object sender, EventArgs e)

{(RBAddFaculty.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE FacultyInsert @ShortName ,@FullName, @re output";

{((textFacultyShortName.Text != "") & (textFacultyShortName.Text != ""))

{.Parameters.Add("@ShortName", SqlDbType.NVarChar, 10).Value = textFacultyShortName.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@FullName", SqlDbType.NVarChar, 100).Value = textFacultyFullName.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Запись о факультете с таким названием уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteFaculty.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE FacultyDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = FacultyGridView.Rows[FacultyGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нельзя удалить - на факультете есть студенты!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateFaculty.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE FacultyUpdate @ID, @ShortName ,@FullName, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = FacultyGridView.Rows[FacultyGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@ShortName", SqlDbType.NVarChar, 10).Value = textFacultyShortName.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@FullName", SqlDbType.NVarChar, 100).Value = textFacultyFullName.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -2)

{.Show("Факультет с таким названием уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.facultyTableAdapter.Fill(this.университетDataSet.Faculty);

}

void buttonSpec_Click(object sender, EventArgs e)

{(RBAddSpeciality.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SpecialityInsert @Nspec ,@Name, @Department,@StudyCost, @re output";

{.Parameters.Add("@Nspec", SqlDbType.NVarChar, 6).Value = textSpecialitySpec.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Name", SqlDbType.NVarChar, 100).Value = textSpecialityName.Text;.Parameters.Add("@Department", SqlDbType.NVarChar, 10).Value = textSpecialityDepartament.Text;.Parameters.Add("@StudyCost", SqlDbType.Money).Value = textSpecialityStudyCost.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Запись о такой специальности уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Введенная кафедра не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteSpeciality.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SpecialityDelete @ID,@re output ";

// try

// {.Parameters.Add("@ID", SqlDbType.Int).Value = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нельзя удалить - на специальности есть группы!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateSpeciality.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SpecialityUpdate @ID,@Nspec ,@Name, @Department,@StudyCost, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@Nspec", SqlDbType.NVarChar, 6).Value = textSpecialitySpec.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Name", SqlDbType.NVarChar, 100).Value = textSpecialityName.Text;.Parameters.Add("@Department", SqlDbType.NVarChar, 10).Value = textSpecialityDepartament.Text;.Parameters.Add("@StudyCost", SqlDbType.Money).Value = textSpecialityStudyCost.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-2:.Show("Запись о такой специальности уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-1:.Show("Введенная кафедра не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.specialityTableAdapter.Fill(this.университетDataSet.Speciality);

}

void buttonSpec_Click_1(object sender, EventArgs e)

{(RBAddSpeciality.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SpecialityInsert @Nspec ,@Name, @Department,@StudyCost, @re output";

{.Parameters.Add("@Nspec", SqlDbType.NVarChar, 6).Value = textSpecialitySpec.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Name", SqlDbType.NVarChar, 100).Value = textSpecialityName.Text;.Parameters.Add("@Department", SqlDbType.NVarChar, 10).Value = textSpecialityDepartament.Text;.Parameters.Add("@StudyCost", SqlDbType.Money).Value = textSpecialityStudyCost.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Запись о такой специальности уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Введенная кафедра не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteSpeciality.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SpecialityDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нельзя удалить - на специальности есть группы!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateSpeciality.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SpecialityUpdate @ID,@Nspec ,@Name, @Department,@StudyCost, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@Nspec", SqlDbType.NVarChar, 6).Value = textSpecialitySpec.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@Name", SqlDbType.NVarChar, 100).Value = textSpecialityName.Text;.Parameters.Add("@Department", SqlDbType.NVarChar, 10).Value = textSpecialityDepartament.Text;.Parameters.Add("@StudyCost", SqlDbType.Money).Value = textSpecialityStudyCost.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-2:.Show("Запись о такой специальности уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-1:.Show("Введенная кафедра не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.specialityTableAdapter.Fill(this.университетDataSet.Speciality);

}

void buttonGroup_Click(object sender, EventArgs e)

{(RBAddGroup.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE GroupInsert @number ,@speciality, @re output";

{.Parameters.Add("@number", SqlDbType.NVarChar, 4).Value = textGroupNumber.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@speciality", SqlDbType.NVarChar, 6).Value = textGroupSpeciality.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Запись о такой группе уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Введенная специальность не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteGroup.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE GroupDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = GroupGridView.Rows[GroupGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нельзя удалить - в группе числятся студенты!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateGroup.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE GroupUpdate @ID,@number ,@speciality, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = GroupGridView.Rows[GroupGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@number", SqlDbType.NVarChar, 4).Value = textGroupNumber.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@speciality", SqlDbType.NVarChar, 6).Value = textGroupSpeciality.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-2:.Show("Запись о такой группе уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-1:.Show("Указанная группа не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Введенной специальности не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.groupTableAdapter.Fill(this.университетDataSet.Group);

}

void RBAddFaculty_Click(object sender, EventArgs e)

{.Clear();.Clear();.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();.Text = "Добавить";


}

void RBUpdateFaculty_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Изменить";

}

void RBDeleteFaculty_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Text = "Удалить";

}

void RBAddSubject_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Clear();.Text = "Добавить";

}

void RBUpdateSubject_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Text = "Изменить";

}

void RBDeleteSubject_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Text = "Удалить";

}

void RBAddTeach_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Добавить";

}

void RBUpdateTeach_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Изменить";

}

void RBDeleteTeach_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Text = "Удалить";

}

void RBAddExam_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Добавить";

}

void RBUpdateExam_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Изменить";

}

void RBDeleteExam_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Text = "Удалить";

}

void RBAddSpeciality_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Добавить";.Clear();.Clear();.Clear();.Clear();

}

void RBUpdateSpeciality_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Изменить";

}

void RBDeleteSpeciality_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Text = "Удалить";

}

void RBAddGroup_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Добавить";.Clear();.Clear();

}

void RBUpdateGroup_Click(object sender, EventArgs e)

{.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Text = "Изменить";

}

void RBDeleteGroup_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Text = "Удалить";

}

void buttonSubject_Click(object sender, EventArgs e)

{(RBAddSubject.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SubjectInsert @Name, @re output";

{(textSubjectName.Text != "")

{.Parameters.Add("@Name", SqlDbType.NVarChar, 50).Value = textSubjectName.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Запись таком предмете уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteSubject.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SubjectDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = SubjectGridView.Rows[SubjectGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нельзя удалить - этот предмет преподается или сдается на экзамене!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateSubject.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SubjectUpdate @ID, @Name, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = SubjectGridView.Rows[SubjectGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@Name", SqlDbType.NVarChar, 50).Value = textSubjectName.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Такой предмет уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.subjectTableAdapter.Fill(this.университетDataSet.Subject);

}

void buttonTeach_Click(object sender, EventArgs e)

{(RBAddTeach.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachInsert @prep, @subject,@date @re output";

{.Parameters.Add("@prep", SqlDbType.NVarChar, 50).Value = cbTeachTeachers.Text;.Parameters.Add("@subject", SqlDbType.NVarChar, 50).Value = cbTeachSubject.Text;.Parameters.Add("@date", SqlDbType.DateTime).Value = textTeachDate.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Нет такого преподавателя", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Такая запись уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Нет такого предмета", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteTeach.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachDelete @ID,@re output ";

// try

// {.Parameters.Add("@ID", SqlDbType.Int).Value = TeachGridView.Rows[TeachGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нет такой записи", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateTeach.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachUpdate @ID, @prep, @subject,@date, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = TeachGridView.Rows[TeachGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@prep", SqlDbType.NVarChar, 50).Value = cbTeachTeachers.Text;.Parameters.Add("@subject", SqlDbType.NVarChar, 50).Value = cbTeachSubject.Text;.Parameters.Add("@date", SqlDbType.DateTime).Value = textTeachDate.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Нет такого преподавателя", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Нет записи с таким ID", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Нет такого предмета", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-4:.Show("Такая запись уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.teachTableAdapter.Fill(this.университетDataSet.Teach);

}

void RBAddTeach_CheckedChanged(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.SelectedIndex=-1;.SelectedIndex = -1;.Text = "";

}

void RBUpdateTeach_CheckedChanged(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteTeach_CheckedChanged(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}


void buttonExam_Click(object sender, EventArgs e)

{(RBAddExam.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE ExamInsert @FIO,@Subject,@Mark, @Date, @re output";

{.Parameters.Add("@FIO", SqlDbType.NVarChar, 5).Value = textExamNzach.Text;.Parameters.Add("@subject", SqlDbType.NVarChar, 50).Value = textExamNSubject.Text;.Parameters.Add("@Mark", SqlDbType.NVarChar, 1).Value = textExamMark.Text;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textExamDate.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Нет такого студента", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Нет такого предмета", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Нет такой оценки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBDeleteExam.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE ExamDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = ExamGridView.Rows[ExamGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Нет такой записи", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateExam.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE ExamUpdate @ID, @FIO,@Subject,@Mark, @Date, @re output";

{.Parameters.Add("@ID", SqlDbType.Int).Value = ExamGridView.Rows[ExamGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@FIO", SqlDbType.NVarChar, 5).Value = textExamNzach.Text;.Parameters.Add("@subject", SqlDbType.NVarChar, 50).Value = textExamNSubject.Text;.Parameters.Add("@Mark", SqlDbType.NVarChar, 1).Value = textExamMark.Text;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textExamDate.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag)

{-1:.Show("Нет такого студента", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-2:.Show("Нет такого предмета", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-3:.Show("Нет такой оценки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-4:.Show("Студент не может сдавать два экзамена в один день", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;-5:.Show("Нет такой записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);;

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.examTableAdapter.Fill(this.университетDataSet.Exam);

}

void buttonSDegree_Click_1(object sender, EventArgs e)

{(RBAddSDegree.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SDegreeInsert @Teachers ,@SDegree, @Date, @re output";

{.Parameters.Add("@Teachers", SqlDbType.Int).Value = textSDegreeTeachers.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@SDegree", SqlDbType.NVarChar, 50).Value = textSDegreeSDegree.Text;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textSDegreeDate.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Введенного преподавателя не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}


}(RBDeleteSDegree.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SDegreeDelete @ID,@re output ";.Parameters.Add("@ID", SqlDbType.Int).Value = SDegreeGridView.Rows[SDegreeGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters.Add("@re", SqlDbType.Int);.Parameters["@re"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -1)

{.Show("Такой записи не существует!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}(RBUpdateDegree.Checked)

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE SDegreeUpdate @ID,@Teachers ,@SDegree, @Date, @re output";

{.Parameters.Add("@Teachers", SqlDbType.Int).Value = textSDegreeTeachers.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters.Add("@ID", SqlDbType.Int).Value = SDegreeGridView.Rows[SDegreeGridView.CurrentRow.Index].Cells[0].Value.ToString();.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters.Add("@SDegree", SqlDbType.NVarChar, 50).Value = textSDegreeSDegree.Text;.Parameters.Add("@Date", SqlDbType.DateTime).Value = textSDegreeDate.Text;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == -2)

{.Show("Введенного преподавателя не существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

{.conDB.Close();.Show("Введите корректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}.sDegreeTableAdapter.Fill(this.университетDataSet.SDegree);

}

void RBAddSDegree_CheckedChanged_1(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();.Clear();

}

void RBUpdateDegree_CheckedChanged_1(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteSDegree_CheckedChanged_1(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void RBAddExam_CheckedChanged(object sender, EventArgs e)

{.Text = "Добавить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Clear();.Clear();.Clear();.Clear();

}

void RBUpdateExam_CheckedChanged(object sender, EventArgs e)

{.Text = "Изменить";.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;

}

void RBDeleteExam_CheckedChanged(object sender, EventArgs e)

{.Text = "Удалить";.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;.Visible = false;

}

void TableStudent_SelectionChanged(object sender, EventArgs e)

{(RBEdit.Checked)

{

{.Text = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[1].Value.ToString();.Text = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[3].Value.ToString();(Convert.ToBoolean(TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[6].Value)).SelectedIndex = 0;comboBoxPay.SelectedIndex = 1;.Text = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[2].Value.ToString();.Text = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[4].Value.ToString();.Text = TableStudent.Rows[TableStudent.CurrentRow.Index].Cells[5].Value.ToString();

}

{.Clear();.Clear();.Clear();.Clear();.Clear();

}

}

}

void DepertamentGridView_SelectionChanged(object sender, EventArgs e)

{(RBEditDepartament.Checked)

{

{

.Text = DepertamentGridView.Rows[DepertamentGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = DepertamentGridView.Rows[DepertamentGridView.CurrentRow.Index].Cells[2].Value.ToString();

}

{.Clear();.Clear();

}

}

}

void FacultyGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateFaculty.Checked)

{

{

.Text = FacultyGridView.Rows[FacultyGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = FacultyGridView.Rows[FacultyGridView.CurrentRow.Index].Cells[2].Value.ToString();

}

{.Clear();.Clear();

}

}

}

void SubjectGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateSubject.Checked)

{

{

.Text = SubjectGridView.Rows[SubjectGridView.CurrentRow.Index].Cells[1].Value.ToString();

}

{.Clear();

}

}

}

void SalaryGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateSalary.Checked)

{

{.Text = SalaryGridView.Rows[SalaryGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = SalaryGridView.Rows[SalaryGridView.CurrentRow.Index].Cells[2].Value.ToString();.Text = SalaryGridView.Rows[SalaryGridView.CurrentRow.Index].Cells[3].Value.ToString().Substring(0, 10);

}

{.Clear();.Clear();.Clear();

}

}

}

void GrantGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateGrant.Checked)

{

{.Text = GrantGridView.Rows[GrantGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = GrantGridView.Rows[GrantGridView.CurrentRow.Index].Cells[2].Value.ToString();.Text = GrantGridView.Rows[GrantGridView.CurrentRow.Index].Cells[3].Value.ToString().Substring(0, 10);

}

{.Clear();.Clear();.Clear();

}

}

}

void TeachersGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateTeachers.Checked)

{

{.Text = TeachersGridView.Rows[TeachersGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = TeachersGridView.Rows[TeachersGridView.CurrentRow.Index].Cells[2].Value.ToString();.Text = TeachersGridView.Rows[TeachersGridView.CurrentRow.Index].Cells[3].Value.ToString();.Text = TeachersGridView.Rows[TeachersGridView.CurrentRow.Index].Cells[4].Value.ToString();

}

{.Clear();.Clear();.Clear();.Clear();

}

}

}

void SpecialityGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateSpeciality.Checked)

{

{.Text = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[2].Value.ToString();.Text = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[3].Value.ToString();.Text = SpecialityGridView.Rows[SpecialityGridView.CurrentRow.Index].Cells[4].Value.ToString();

}

{.Clear();.Clear();.Clear();.Clear();

}

}

}

void GroupGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateGroup.Checked)

{

{.Text = GroupGridView.Rows[GroupGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = GroupGridView.Rows[GroupGridView.CurrentRow.Index].Cells[2].Value.ToString();

}

{.Clear();.Clear();

}

}


}

void TeachGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateTeach.Checked)

{k = -1;(int i = 0; i < cbTeachSubject.Items.Count; i++)

{.SelectedIndex = i;

{(TeachGridView.Rows[TeachGridView.CurrentRow.Index].Cells["Name21"].Value.ToString().TrimEnd() == cbTeachSubject.Text.ToString().TrimEnd())= i;

}

{

}

}.SelectedIndex = k;= -1;(int i = 0; i < cbTeachTeachers.Items.Count; i++)

{.SelectedIndex = i;

{(TeachGridView.Rows[TeachGridView.CurrentRow.Index].Cells["dataGridViewTextBoxColumn5"].Value.ToString().TrimEnd() == cbTeachTeachers.Text.ToString().TrimEnd())= i;

}

{

}

}.SelectedIndex = k;.Text = TeachGridView.Rows[TeachGridView.CurrentRow.Index].Cells[3].Value.ToString().Substring(0,10);

}

}

void ExamGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateExam.Checked)

{

{.Text = ExamGridView.Rows[ExamGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = ExamGridView.Rows[ExamGridView.CurrentRow.Index].Cells[2].Value.ToString();.Text = ExamGridView.Rows[ExamGridView.CurrentRow.Index].Cells[3].Value.ToString();.Text = ExamGridView.Rows[ExamGridView.CurrentRow.Index].Cells[4].Value.ToString().Substring(0, 10);

}

{.Clear();.Clear();.Clear();.Clear();

}

}

}

void SDegreeGridView_SelectionChanged(object sender, EventArgs e)

{(RBUpdateDegree.Checked)

{

{.Text = SDegreeGridView.Rows[SDegreeGridView.CurrentRow.Index].Cells[1].Value.ToString();.Text = SDegreeGridView.Rows[SDegreeGridView.CurrentRow.Index].Cells[2].Value.ToString();.Text = SDegreeGridView.Rows[SDegreeGridView.CurrentRow.Index].Cells[3].Value.ToString().Substring(0, 10);

}

{.Clear();.Clear();.Clear();

}

}

}


}

}

AbiturientForm:

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

StudentAndTeashers

{partial class AbiturientForm : Form

{AbiturientForm()

{();

}

void AbiturientForm_Load(object sender, EventArgs e)

{.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.facultyTableAdapter.Fill(this.abiturientDataSet.Faculty);.departmentTableAdapter.Fill(this.abiturientDataSet.Department);.specialityTableAdapter.Fill(this.abiturientDataSet.Speciality);


}

void toolStripTextBox1_TextChanged(object sender, EventArgs e)

{(toolStripComboBox1.SelectedIndex != -1)

{(toolStripTextBox1.Text != "")(toolStripComboBox1.SelectedIndex)

{0:.Filter = "Nspec like '%" + toolStripTextBox1.Text + "%'";;1:.Filter = "Name like '%" + toolStripTextBox1.Text + "%'";;2:.Filter = "ShortName like '%" + toolStripTextBox1.Text + "%'";;

}specialityBindingSource.RemoveFilter();

}

}

void toolStripTextBox2_TextChanged(object sender, EventArgs e)

{(toolStripComboBox2.SelectedIndex != -1)

{(toolStripTextBox2.Text != "")(toolStripComboBox2.SelectedIndex)

{0:.Filter = "ShortName like '%" + toolStripTextBox2.Text + "%'";;1:.Filter = "FullName like '%" + toolStripTextBox2.Text + "%'";;

}departmentBindingSource.RemoveFilter();

}

}

void toolStripTextBox3_TextChanged(object sender, EventArgs e)

{(toolStripComboBox3.SelectedIndex != -1)

{(toolStripTextBox3.Text != "")(toolStripComboBox3.SelectedIndex)

{0:.Filter = "ShortName like '%" + toolStripTextBox3.Text + "%'";;1:.Filter = "FullName like '%" + toolStripTextBox3.Text + "%'";;

}facultyBindingSource.RemoveFilter();

}

}

}

}

Password.cs:

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

StudentAndTeashers

{partial class Password : Form

{Password()

{();

}static string Student;static string FIO;static int Teacher;

void ButtonPassword_Click(object sender, EventArgs e)

{= "";= 0;(RBAbitur.Checked)

{= DialogResult.OK;.user = MainForm.UserType.Abiturient;.Show("Вход осуществлён");


}(RBAdmin.Checked)

{(TextBoxPassword.Text == "admin")

{= DialogResult.OK;.user = MainForm.UserType.Admin;.Show("Вход осуществлён");

}

{.Show("Вы не администратор");.user = MainForm.UserType.Zero;

}

}(RBRector.Checked)

{(TextBoxPassword.Text == "rector")

{= DialogResult.OK;.user = MainForm.UserType.Rector;.Show("Ректор, вход осуществлён");

}


{.Show("Вы не ректор! \n\r Вход запрещён");.user = MainForm.UserType.Zero;

}

}(RBStudent.Checked)

{

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE StuPass @pass, @re output,@FIO output";.Parameters.Add("@pass", SqlDbType.NVarChar, 5).Value = TextBoxPassword.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters.Add("@FIO", SqlDbType.NVarChar, 50);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters["@FIO"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == 0)

{= Convert.ToString(com.Parameters["@FIO"].Value);= DialogResult.OK;= TextBoxPassword.Text;.user = MainForm.UserType.Student;.Show("Вход осуществлён");

}

{.user = MainForm.UserType.Zero;.Show("Вы не студент! \n\r Вход запрещён");

}

}

{.Show("Вводите Ваш номер зачётной книжки!");.conDB.Close();

}

}(RBTeacher.Checked)

{

{com = MainForm.conDB.CreateCommand();.CommandText = "EXECUTE TeachPass @pass, @re output,@FIO output";.Parameters.Add("@pass", SqlDbType.Int).Value = TextBoxPassword.Text;.Parameters.Add("@re", SqlDbType.Int);.Parameters.Add("@FIO", SqlDbType.NVarChar, 50);.Parameters["@re"].Direction = ParameterDirection.Output;.Parameters["@FIO"].Direction = ParameterDirection.Output;.conDB.Open();.ExecuteNonQuery();.conDB.Close();flag = Convert.ToInt32(com.Parameters["@re"].Value);(flag == 0)

{= Convert.ToString(com.Parameters["@FIO"].Value);= Convert.ToInt16(TextBoxPassword.Text);= DialogResult.OK;.user = MainForm.UserType.Teacher;.Show("Вход осуществлён");

}

{.user = MainForm.UserType.Zero;.Show("Вы не преподаватель! \n\r Вход запрещён");

}

}

{.Show("Вводите Ваш ID!");.conDB.Close();

}

}

}

void ButtonExit_Click(object sender, EventArgs e)

{();

}

void TextBoxPassword_TextChanged(object sender, EventArgs e)

{.PasswordChar = '*';

}

}

}

RectorForm.cs:

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.SqlClient;System.Drawing;System.Text;System.Windows.Forms;CrystalDecisions.Shared;CrystalDecisions.CrystalReports.Engine;

StudentAndTeashers

{partial class RectorForm : Form

{RectorForm()

{();

}

void RectorForm_Load(object sender, EventArgs e)

{.Connection = MainForm.conDB;.Connection = MainForm.conDB;.studentTableAdapter1.Fill(this.dataSet_rector.Student);.teachersTableAdapter.Fill(this.dataSet_rector.Teachers);

}

void tstFind_TextChanged_1(object sender, EventArgs e)

{(tscWhere.SelectedIndex != -1)

{(tstFind.Text != "")(tscWhere.SelectedIndex)

{0:.Filter = "Nzach like '%" + tstFind.Text + "%'";;1:.Filter = "FIO like '%" + tstFind.Text + "%'";;2:.Filter = "ShortName like '%" + tstFind.Text + "%'";;3:.Filter = "Number like '%" + tstFind.Text + "%'";;4:.Filter = "Nspec like '%" + tstFind.Text + "%'";;5:.Filter = "StudyForm like '%" + tstFind.Text + "%'";;6:.Filter = "Factory like '%" + tstFind.Text + "%'";;: studentBindingSource1.RemoveFilter(); break;

}studentBindingSource1.RemoveFilter();

}

}

void toolStripTextBox1_TextChanged_1(object sender, EventArgs e)

{(toolStripComboBox1.SelectedIndex != -1)

{(toolStripTextBox1.Text != "")(toolStripComboBox1.SelectedIndex)

{0:.Filter = "FIO like '%" + toolStripTextBox1.Text + "%'";;1:.Filter = "Dolznost like '%" + toolStripTextBox1.Text + "%'";;2:.Filter = "ShortName like '%" + toolStripTextBox1.Text + "%'";;3:.Filter = "DatePrin Convert(datetime,'" + toolStripTextBox1.Text + "') ";;4:.Filter = "SDegree like '%" + toolStripTextBox1.Text + "%'";;5:.Filter = "Date Convert(datetime,'" + toolStripTextBox1.Text + "') ";;: studentBindingSource.RemoveFilter(); break;

}studentBindingSource.RemoveFilter();

}

}

void ReportButton_Click_1(object sender, EventArgs e)

{rep = new ReportsForm();.MdiParent = this.MdiParent;.Show();

}

}

}

ReportsForm:

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

StudentAndTeashers

{partial class ReportsForm : Form

{ReportsForm()

{();

}

void button1_Click(object sender, EventArgs e)

{


}

void ReportsForm_Load(object sender, EventArgs e)

{(MainForm.rs == MainForm.ReportSelected.Students)

{ds1 = new DataSet();

//SqlConnection con1 = new SqlConnection("Data Source=fs\\stud;Initial Catalog=Университет;User ID=sa;Password=sa");

//SqlConnection con1 = new SqlConnection(MainForm.conDB.ConnectionString);con1 = new SqlConnection(MainForm.constring);.Open();com1 = con1.CreateCommand();.CommandText = "EXECUTE selstud";da1 = new SqlDataAdapter(com1);.Fill(ds1);report1 = new stud();.SetDataSource(ds1.Tables[0]);.ReportSource = report1;.Refresh();.Close();

}(MainForm.rs == MainForm.ReportSelected.Teachers)

{ds1 = new DataSet();con1 = new SqlConnection(MainForm.constring);.Open();com1 = con1.CreateCommand();.CommandText = "EXECUTE selteach";da1 = new SqlDataAdapter(com1);.Fill(ds1);report1 = new teacher();.SetDataSource(ds1.Tables[0]);.ReportSource = report1;.Refresh();.Close();

}(MainForm.rs == MainForm.ReportSelected.OneStud)

{ds1 = new DataSet();con1 = new SqlConnection(MainForm.constring);.Open();com1 = con1.CreateCommand();.CommandText = "EXECUTE StudInfo @student";.Parameters.Add("@student", SqlDbType.NVarChar, 5).Value = Password.Student;da1 = new SqlDataAdapter(com1);.Fill(ds1);report1 = new StudInfo();.SetDataSource(ds1.Tables[0]);.SetParameterValue("FIO", Password.FIO);.SetParameterValue("nzach", Password.Student);.ReportSource = report1;.Refresh();.Close();

}

}


}

}

StudForm:

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

StudentAndTeashers

{partial class StudForm : Form

{StudForm()

{();

}

void StudForm_Load(object sender, EventArgs e)

{.Connection = MainForm.conDB;.Connection = MainForm.conDB;.examTableAdapter.Fill(this.studDataSet1.Exam);.grantTableAdapter.Fill(this.studDataSet1.Grant);.Filter = "Student = '" + Password.Student + "'";.Filter = "Nzach = '" + Password.Student + "'";.grantTableAdapter.Fill(this.studDataSet.Grant);.Text = Password.FIO;

}

void toolStripTextBox1_TextChanged(object sender, EventArgs e)

{

}

void toolStripTextBox1_TextChanged_1(object sender, EventArgs e)

{

(toolStripComboBox1.SelectedIndex != -1)

{(toolStripTextBox1.Text != "")(toolStripComboBox1.SelectedIndex)

{0:.Filter = ("Name like '%" + toolStripTextBox1.Text + "%' AND Nzach = '" + Password.Student + "'");;1:.Filter = "Mark like '%"+toolStripTextBox1.Text+"%' AND Nzach = '" + Password.Student + "'";;: examBindingSource.RemoveFilter(); break;

}examBindingSource.Filter = "Nzach = '" + Password.Student + "'";

}

}

}

}

TeacherForm.cs:

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

StudentAndTeashers

{partial class TeacherForm : Form

{TeacherForm()

{();

}

void TeacherForm_Load(object sender, EventArgs e)

{.Connection = MainForm.conDB;.Connection = MainForm.conDB;.Connection = MainForm.conDB;.sDegreeTableAdapter.Fill(this.sDegreeDataSet.SDegree);.salaryTableAdapter.Fill(this.teacherDataSet.Salary);.teachTableAdapter.Fill(this.teacherDataSet.Teach);.Filter = "Teachers ="+ Convert.ToString(Password.Teacher);.Filter = "Teachers =" + Convert.ToString(Password.Teacher);.Filter = "Teachers =" + Convert.ToString(Password.Teacher);.Columns[0].Visible = false;.Columns[0].Visible = false;.Text = Password.FIO;

}

}

}

Zast.cs:

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

StudentAndTeashers

{partial class zast : Form

{zast()

{();

}

void zast_Click(object sender, EventArgs e)

{.Close();

}

void zast_KeyPress(object sender, KeyPressEventArgs e)

{.Close();

}

void timer1_Tick(object sender, EventArgs e)

{.Close();

}

void zast_Load(object sender, EventArgs e)

{.Start();

}

}

}

Приложение 3: Сценарий инсталляции программы


[Setup]=StudentsAndTeachers=StudentsAndTeachers 1.0=Gr. 840, br. 1={pf}\StudentsAndTeachers=StudentsAndTeachers=lzma=yes

[Tasks]: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\Microsoft.Data.ConnectionUI.Dialog.dll; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\Microsoft.Data.ConnectionUI.dll; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\StudentAndTeashers.exe; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\StudentAndTeashers.vshost.exe; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\StudentAndTeashers.pdb; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\StudentAndTeashers.exe.config; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\StudentAndTeashers.vshost.exe.config; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\кп\КСПБД_КУРС_01.06.13.32\StudentAndTeashers\StudentAndTeashers\bin\Release\Microsoft.Data.ConnectionUI.xml; DestDir: {app}: E:\Marija\_Учеба\6 семестр\КСПБД\заставка\23_.ico; DestDir: {app}

[Icons]: {group}\ST; Filename: {app}\StudentAndTeashers.exe; IconFilename: {app}\23_.ico; IconIndex: 0

[Run]: "{app}\StudentAndTeashers.exe"; Description: "{cm:LaunchProgram,StudentAndTeashers}"; Flags: nowait postinstall skipifsilent

[Languages]: "ru"; MessagesFile: "compiler:Languages\Russian.isl"


СОДЕРЖАНИЕ ВВЕДЕНИЕ 1. АНАЛИЗ ЗАДАЧИ 1.1 Анализ предметной области, выявление необходимой пользователю функциональности 1.2 Разработка общей арх

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ