98825

РАЗРАБОТКА ПРИЛОЖЕНИЯ «АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ПОСТАНОВЩИКА И КАССИРА»

Курсовая

Информатика, кибернетика и программирование

Объектом разработки является информационная система, серверная часть которой создана с использованием средств, предоставляемых современными СУБД реляционного типа, а клиентская часть создана с помощью объектно-ориентированного языка программирования C#.

Русский

2015-11-07

453.73 KB

7 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра МО и ПЭВМ

 

«УТВЕРЖДАЮ»

Зав. кафедрой «МО и ПЭВМ»

Макарычев П.П.

_____________________

«___»__________2013г

РАЗРАБОТКА ПРИЛОЖЕНИЯ

«АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ПОСТАНОВЩИКА И КАССИРА»

Отчет по курсовой работе

Автор работы:

Осипов В.С.

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

230105 («Программное обеспечение вычислительной техники и автоматизированных систем»)

Группа:

10ВП2

Руководитель:

Шибанов С. В.

Работа защищена «___» ____ 2011 г.

Оценка   ______________

Пенза 2013 г.


Реферат

Пояснительная записка содержит  43 листа, 14 рисунков, 2 таблицы, 4 использованных источника и 2 приложения.

MS SQL SERVER 2008, MS VISUAL STUDIO, C#, ADO.NET, ТАБЛИЦЫ, ХРАНИМЫЕ ПРОЦЕДУРЫ, ИНФОРМАЦИОННАЯ СИСТЕМА, ПРЕДМЕТНАЯ ОБЛАСТЬ.

Объектом разработки является информационная система, серверная часть которой создана с использованием средств, предоставляемых современными СУБД  реляционного типа, а клиентская часть создана с помощью  объектно-ориентированного языка программирования C#.

Предмет разработки – информационная система «Автоматизированное рабочее место постановщика и кассира»

Цель работы – разработка серверной части и клиентского приложения информационной системы автоматизированного рабочего места постановщика и кассира.

Результаты работы

В процессе разработки проводилось изучение основных средств, предоставляемых средой  MS SQL SERVER 2008 и технологией ADO.NET, на основе их использования разработана и реализована программа.

ПГУ 230105–5КР116.15 ПЗ

Изм

Лист

докум.

Подпись

Дата

Разраб.

Осипов В.С.

Разработка приложения «Автоматизированное рабочее место постановщика и кассира».

Пояснительная записка

Лит.

Лист

Листов

Пров.

Шибанов С. В.

3

43

гр. 10ВП2

Н.-конт.

Утв.


Содержание

Введение 5

1 Постановка задачи и анализ предметной области 6

1.1 Назначение информационной системы 6

1.2 Бизнес-правила и документы, регламентирующие работу ИС 6

1.3 Анализ бизнес-процессов и потоков данных 7

2 Проектирование 11

2.1 Логическая модель БД 11

2.2 Физическая модель БД 12

3 Реализация 15

3.1 Разработка серверной части 15

3.2 Разработка клиентской части 15

4 Тестирование 16

4.1 Тестирование серверной части 16

4.2 Тестирование клиентской части 16

Заключение 20

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

ПРИЛОЖЕНИЕ А 22

ПРИЛОЖЕНИЕ Б 27


Введение

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

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

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

1 Постановка задачи и анализ предметной области

1.1 Назначение информационной системы

Информационная система создается для:

  1.  ведения данных о постановках;
  2.  ведения данных об актерах;
  3.  ведение данных о билетах;
  4.  ведение данных о графике работы спектакля.

Структура предприятия:

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

  1.  для кассиров: приложение для учета билетов;
  2.  для постановщиков: приложение для управления постановками;
  3.  для директора: приложение для управления графиком работы театра.

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

1.2 Бизнес-правила и документы, регламентирующие работу ИС

Факты:

  1.  Театр возглавляет директор.
  2.  Директор контролирует постановки, утверждает репертуар, управляет кадровыми перестановками.
  3.  Кассиры контролируют продажу билетов и приобретение абонементов на любые спектакли.
  4.  Постановщики контролируют подбор персонала для театральных постановок.

Ограничения:

  1.  У каждого спектакля должен быть постановщик.
  2.  У каждой роли должен быть основной актер и дублер.

Активатор:

  1.  Если у актера совпадают даты и время спектакля, то на его роль выставляется дублер.
  2.  Если абонемент включает в себя билеты на спектакли, то либо на конкретного автора, либо конкретного жанра.
  3.  Если актер играет две роли в разных спектаклях, то только в разное время.

Документы, регламентирующие работы информационной системы:

  1.  Трудовой кодекс;
  2.  Авторское право;
  3.  Трудовой договор.

1.3 Анализ бизнес-процессов и потоков данных

Основная входная и выходная информация для информационной системы.

Входная информация:

  1.  Билеты;
  2.  Персонал;
  3.  Пьесы и сценарии;

Выходная информация:

  1.  Репертуар;
  2.  Постановки;
  3.  Гастроли.

На основе выделенной входной и выходной информации, а также на документах, регламентирующих работу театра, можно построить контекстную диаграмму. На основе фактов, выделенных как бизнес-правила ИС, можно построить диаграмму декомпозиции.

На рисунке 1 представлена контекстная диаграмма, на рисунке 2 – диаграмма декомпозиции.

Рисунок 1

Рисунок 2

На рисунке 3 и рисунке 4 представлена диаграмма потоков данных (бизнес-процессы – постановка спектакля и продажа билетов соответственно):

Рисунок 3

Рисунок 4

Источниками данных для бизнес-процесса «постановка спектакля» являются следующие сущности:

  1.  Выбор актеров;
  2.  Составление списка гонораров;
  3.  Составление плана репетиций.

Источниками данных для бизнес-процесса «продажа билетов»

являются следующие сущности:

  1.  Ценообразование;
  2.  Резервирование;
  3.  Информация о проданных билетах.


2 Проектирование

2.1 Логическая модель БД

В разрабатываемых информационных системах «Автоматизированное рабочее место постановщика» и «Автоматизированное рабочее место кассира» будут реализованы следующие бизнес-процессы:

  1.  ведение данных о выборе актеров: для данного бизнес-процесса необходима таблица «Актеры».
  2.  ведение данных о билетах: для данного бизнес-процесса необходима таблица «Билеты»;

Логическая схема данных для информационной системы театра приведена на рисунке 5.

Рисунок 5

2.2 Физическая модель БД

Таблица «Роли»:

  1.  ROL_ID  – искусственный ключ;
  2.  ACT_ID – внешний ключ на Актеры;
  3.  Роль – игра актёра, воспроизводящая героя произведения;
  4.  Амплуа – определенный род ролей, соответствующий внешним и внутренним данным актёра;

Таблица «Актеры»:

  1.  ACT_ID – искусственный ключ;
  2.  ФИО – ФИО актера;
  3.  Статус – занимаемая должность;
  4.  Пол – понятие, обозначающее разделение человечества на две половины: мужчин и женщин.

Таблица «Билеты»:

  1.  BIL_ID - искусственный ключ;
  2.  SPEC_ID – внешний ключ на Спектакли;
  3.  Место – место в зрительном зале;
  4.  Дата – дата, проведения спектакля;
  5.  Кассир – человек, управляющий резервированием билетов.

Таблица «Спектакли»

  1.  SPEC_ID – искусственный ключ;
  2.  DIR_ID – внешний ключ на директора;
  3.  Name_spec – название спектакля;
  4.  Genre – жанр спектакля;
  5.  VOZ_ogr – возрастное ограничение.

Физическая схема данных для администрирования постановщика и кассира приведена на рисунке 6:

Рисунок 6


2.3 Проектирование интерфейса пользователя

На основе разработанных выше бизнес-процессах можно построить следующий интерфейс пользователя:

  1.  Ведение данных о билетах (рисунок 7)

Рисунок 7

  1.  Ведение данных о постановке спектакля (рисунок 8)

Рисунок 8

  1.  Реализация
  2.  Разработка серверной части

Было создано представление «Актеры и роли», включающее в себя объединение сущностей «Актеры», «Роли».

Для бизнес-процесса «Добавление ролей и актеров»:

  1.  Хранимые процедуры: добавить актера и роль, добавить актера к роли, добавить роль к актеру.

      Для бизнес-процесса «Разорвать контракт»:

  1.  Триггер: удаление актеров без ролей и удаление ролей без актеров;

  Для бизнес-процесса «Добавление билета»:

  1.  Триггер: запрет добавления билетов на одно и то же место в один и тот же день;

А так же были разработаны две процедуры поиска (для билетов и актеров и ролей).

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

3.2 Разработка клиентской части

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

  1.  class Form1главная форма;
  2.  class Form2 – форма добавления билета;
  3.  class Form_Actors – форма добавления актера и роли;
  4.  class FormRolls – форма добавления роли к актеру;
  5.  class FormACTOR – форма добавления актера к роли.

Исходный код программы Theatre.exe приведен в приложении Б.

4 Тестирование

4.1 Тестирование серверной части

Результаты тестирования приведены в таблице 1.

Варианты

использования

Тесты

Таблица 1

Результат

Добавление билета

Добавляем дубликат существующего билета

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

Добавление нового билета

Билет успешно добавился.

Удаление связи актер-роль

Удаление связи актер-роль при этом актер оказывается без роли

Помимо удаленной связи, удалился и актер(сообщение об удалении).

Удаление связи актер-роль при этом и актер, и роль имеют еще связи

Было осуществлено только удаление связи.

4.2 Тестирование клиентской части

Результаты тестирования приведены в таблице 2.

Варианты

использования

Тесты

Таблица 2

Результат

Запуск приложения

Запускаем файл Theatre.exe

Подключение проходит правильно, приложение запускается (рисунок 9)

Поиск

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

Если билет существует, то выводится информация о билете, иначе пустое поле (рисунок 10).

Добавление билета

Нажимаем на кнопку «Добавить»

Открывается новая форма

(рисунок 11)

Добавление билета

Билет успешно добавляется, таблица с информацией о билетах на главной форме обновляется.

Продажа билета

Нажимаем на кнопку «Продать»

Появляется сообщение с подтверждением продажи. При нажатии на «ОК» происходит продажа билета и таблица с результатами обновляется.

Добавление актеров и ролей

Нажимаем на кнопку добавления

В зависимости от нажатой кнопки открывается новая форма для добавления данных (рисунки 12-14).

Добавление актеров и ролей с незаполненными обязательными полями

Появляется ошибка о том, что не заполнены обязательные поля.

Добавление актеров и ролей с заполненными обязательными полями

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

Разорвать контракт

Выделяем актера и нажимаем на кнопку «Разорвать контракт»

Появляется сообщение с подтверждением. При нажатии на «ОК» происходит удаление актера и таблица с данными обновляется.

Рисунок 9

Рисунок 10

Рисунок 11

Рисунок 12

Рисунок 13

Рисунок 14


Заключение

В результате выполнения курсового проекта была изучена технология ADO.NET, разработана информационная система «Автоматизированное рабочее место постановщика и кассира». Разработка включила в себя создание базы данных на MS SQL Server 2008, триггеров и хранимых процедур, и представления, создание клиентского приложения на языке C#.

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

  1.  Постолит А. В. Visual Studio .NET разработка приложений баз данных
  2.  Сеппа Д. Microsoft ADO.NET
  3.  Файзрахманов Р.А., Селезнев К.А. Структурно функциональный подход к проектированию информационных технологий и автоматизированных систем с использованием CASE-средств
  4.  http://www.cyberforum.ru/ado-net/thread182279.html

ПРИЛОЖЕНИЕ А

Создание базы данных:

USE master;

GO

CREATE DATABASE Theatre

ON

( NAME = Theatre,

FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.COMPAQ\MSSQL\DATA\Theatre.mdf',

SIZE = 100MB,

MAXSIZE = 200MB,

FILEGROWTH = 10 ) 

LOG ON

( NAME = Theatre_log,

FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.COMPAQ\MSSQL\DATA\Theatre_log.ldf',

SIZE = 100MB,

MAXSIZE = 200MB,

FILEGROWTH = 10 )

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

USE Theatre;

GO

create table actors

(

ACT_ID INT IDENTITY(1,1)

 CONSTRAINT a_ACT_ID PRIMARY KEY,

FIO_a VARCHAR(100) NOT NULL,

stat VARCHAR(50) NOT NULL,

pol  VARCHAR(10) NOT NULL

 CHECK (pol in ('мужской','женский'))

)

 

GO

create table act_rol

(

ACT_ID INT NOT NULL 

 CONSTRAINT d_ACT_ID FOREIGN KEY REFERENCES actors(ACT_ID),

ROL_ID INT NOT NULL 

 CONSTRAINT c_ROL_ID FOREIGN KEY REFERENCES Rol(ROL_ID)

)

GO

create table rol

(

ROL_ID INT IDENTITY(1,1)

 CONSTRAINT a_ROL_ID PRIMARY KEY,

SPEC_ID INT NOT NULL 

 CONSTRAINT b_SPEC_ID FOREIGN KEY REFERENCES performances(SPEC_ID),

ACT_ID INT NOT NULL 

 CONSTRAINT c_ACT_ID FOREIGN KEY REFERENCES actors(ACT_ID),

roll VARCHAR(100) NOT NULL,

amplya  VARCHAR(100) NOT NULL

)

GO

create table ticket

(

BIL_ID INT IDENTITY(1,1)

 CONSTRAINT a_BIL_ID PRIMARY KEY,

SPEC_ID INT NOT NULL 

 CONSTRAINT d_SPEC_ID FOREIGN KEY REFERENCES performances(SPEC_ID),

mesto VARCHAR(50) NOT NULL,

date_prov DATETIME NOT NULL,

kassir VARCHAR(150) NOT NULL

)

GO

create table reviews

(

REV_ID INT IDENTITY(1,1)

 CONSTRAINT a_REV_ID PRIMARY KEY,

SPEC_ID INT NOT NULL 

 CONSTRAINT e_SPEC_ID FOREIGN KEY REFERENCES performances(SPEC_ID),

evaluation INT NOT NULL

 CHECK (evaluation in ('1','2','3','4','5','6','7','8','9','10'))

)

GO

create table Gr_work_theatre

(

GR_ID INT IDENTITY(1,1)

 CONSTRAINT a_GR_ID PRIMARY KEY,

SPEC_ID INT NOT NULL 

 CONSTRAINT c_SPEC_ID FOREIGN KEY REFERENCES performances(SPEC_ID),

time_p DATETIME NOT NULL,

date_p DATETIME NOT NULL

)

GO

create table performances

(

SPEC_ID INT IDENTITY(1,1)

 CONSTRAINT a_SPEC_ID PRIMARY KEY,

DIR_ID INT NOT NULL 

 CONSTRAINT c_DIR_ID FOREIGN KEY REFERENCES directors(DIR_ID),

Name_spec VARCHAR(50) NOT NULL,

genre VARCHAR(50) NOT NULL,

VOZ_ogr INT NOT NULL

)

GO

create table directors

(

DIR_ID INT IDENTITY(1,1)

 CONSTRAINT a_DIR_ID PRIMARY KEY,

FIO_d VARCHAR(100) NOT NULL,

record VARCHAR(500) NOT NULL

)

GO

Триггеры:

-- актер без роли и роль без актера бесполезны

GO

CREATE TRIGGER AR_Control

ON act_rol FOR Delete

AS

DECLARE @act INT, @rol INT

IF @@ROWCOUNT=1

BEGIN

 SELECT @act=ACT_ID, @rol=ROL_ID

 FROM deleted

 IF ((SELECT COUNT (*) FROM act_rol WHERE ACT_ID=@act) < 1)

 BEGIN

 PRINT 'База данных производит очистку от актеров без роли...'

 DELETE FROM actors WHERE actors.ACT_ID=@act

 END

 IF ((SELECT COUNT (*) FROM act_rol WHERE ROL_ID=@rol) < 1)

 BEGIN

 PRINT 'База данных производит очистку от ролей без актера...'

 DELETE FROM rol WHERE rol.ROL_ID=@rol

 END

END;

-- не должно быть два билета на одно место в один день

GO

CREATE TRIGGER Ticket_Control

ON Ticket FOR Insert, Update

AS

DECLARE @place INT, @d DATETIME

IF @@ROWCOUNT=1

BEGIN

 SELECT @place=mesto, @d=date_prov

 FROM inserted

 IF ((SELECT COUNT (*) FROM Ticket WHERE mesto=@place AND date_prov=@d) > 1)

 BEGIN

 PRINT 'Билет на данное место в этот день уже существует'

 ROLLBACK;

 END

END

Хранимые процедуры:

-- поиск актер_роль

CREATE Procedure Search_AR

@SPEC_ID INT

AS

SELECT * FROM Actors_Roles ar

WHERE ar.SPEC_ID = @SPEC_ID

-- добавление актера к роли

CREATE PROCEDURE INSERT_A

@ROL_ID INT,

@FIO_a VARCHAR(100),

@stat VARCHAR(50),

@pol VARCHAR(10)

AS

DECLARE @id1 INT

INSERT INTO actors (FIO_a, stat, pol) VALUES (@FIO_a, @stat, @pol)

SET @id1 = SCOPE_IDENTITY()

INSERT INTO act_rol (ACT_ID, ROL_ID) VALUES (@id1, @ROL_ID)

-- добавление роли к актеру

CREATE PROCEDURE INSERT_R

@ACT_ID INT,

@SPEC_ID INT,

@roll VARCHAR(100),

@amplya VARCHAR(100)

AS

DECLARE @id1 INT

INSERT INTO rol (SPEC_ID, roll, amplya) VALUES (@SPEC_ID, @roll, @amplya)

SET @id1 = SCOPE_IDENTITY()

INSERT INTO act_rol (ACT_ID, ROL_ID) VALUES (@ACT_ID, @id1)

-- добавление актера и роли

CREATE PROCEDURE INSERT_AR

@FIO_a VARCHAR(100),

@stat VARCHAR(50),

@pol VARCHAR(10),

@SPEC_ID INT,

@roll VARCHAR(100),

@amplya VARCHAR(100)

AS

DECLARE @id1 INT, @id2 INT

INSERT INTO actors (FIO_a, stat, pol) VALUES (@FIO_a, @stat, @pol)

set @id1 = SCOPE_IDENTITY()

INSERT INTO rol (SPEC_ID, roll, amplya) VALUES (@SPEC_ID, @roll, @amplya)

set @id2 = SCOPE_IDENTITY()

INSERT INTO act_rol (ACT_ID, ROL_ID) VALUES (@id1, @id2)

-- поиск билета

CREATE Procedure Search_Ticket

@SPEC_ID int,

@mesto varchar(50)

AS

SELECT t.BIL_ID as [ID], t.mesto as [Место], t.date_prov as [Дата проведения], t.kassir as [Кассир]

FROM Ticket t

Left Join Performances p on p.SPEC_ID=t.SPEC_ID

WHERE (p.SPEC_ID = @SPEC_ID or @SPEC_ID IS NULL) and (t.mesto = @mesto or @mesto IS NULL)

Представление:

-- актеры и их роли

CREATE VIEW Actors_Roles

AS

SELECT a.ACT_ID, r.ROL_ID, p.SPEC_ID , a.FIO_a as [ФИО], a.stat as [Статус], a.pol as [Пол], p.Name_spec as [Спектакль], r.roll as [Роль], r.amplya as [Амплуа]

FROM Actors a

INNER JOIN act_rol ar on a.ACT_ID = ar.ACT_ID

INNER JOIN rol r on ar.ROL_ID = r.ROL_ID

INNER JOIN performances p on r.SPEC_ID = p.SPEC_ID @SPEC_ID IS NULL) and (t.mesto = @mesto or @mesto IS NULL)

ПРИЛОЖЕНИЕ Б

FormACTOR.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Theatre

{

   public partial class FormACTOR : Form

   {

       SqlConnection connection;

       public bool accept = false;

       public FormACTOR()

       {

           InitializeComponent();

           connection = new SqlConnection(@"Data Source = (local);

                           Initial Catalog = Theatre;

                           Integrated Security=True");

           SqlCommand SqlC2 = new SqlCommand

            ("Select ACT_ID, FIO_a from Actors", connection);

           DataTable dt1 = new DataTable();

           SqlDataAdapter da1 = new SqlDataAdapter(SqlC2);

           dt1.Clear();

           da1.Fill(dt1);

           comboBox3.DataSource = dt1;

           comboBox3.DisplayMember = "FIO_a";

           comboBox3.ValueMember = "ACT_ID";

           SqlCommand SqlC3 = new SqlCommand

             ("Select ROL_ID, roll from rol", connection);

           DataTable dt2 = new DataTable();

           SqlDataAdapter da2 = new SqlDataAdapter(SqlC3);

           dt2.Clear();

           da2.Fill(dt2);

           comboBox1.DataSource = dt2;

           comboBox1.DisplayMember = "roll";

           comboBox1.ValueMember = "ROL_ID";

           connection.Close();

           comboBox1.Text = "";

           comboBox3.Text = "";

           this.ShowDialog();

       }

       private void FormRolls_Load(object sender, EventArgs e)

       {

       }

       private void button1_Click(object sender, EventArgs e)

       {

             connection.Open();

           SqlCommand newCommand = new SqlCommand();

           if (checkBox2.Checked)

           {

               newCommand = new SqlCommand("INSERT INTO act_rol (ACT_ID, ROL_ID) VALUES (@ACT_ID, @ROL_ID)", connection);

               newCommand.CommandType = CommandType.Text;

               newCommand.Parameters.Add(new SqlParameter("@ACT_ID", SqlDbType.Int));

               newCommand.Parameters["@ACT_ID"].Value = comboBox3.SelectedValue.ToString().Trim();

               newCommand.Parameters["@ACT_ID"].Direction = ParameterDirection.Input;

               newCommand.Parameters.Add(new SqlParameter("@ROL_ID", SqlDbType.Int));

               newCommand.Parameters["@ROL_ID"].Value = comboBox1.SelectedValue.ToString().Trim();

               newCommand.Parameters["@ROL_ID"].Direction = ParameterDirection.Input;

               try

               {

                   newCommand.ExecuteNonQuery();

                   MessageBox.Show("Добавлен новый актер");

                   accept = true;

                   connection.Close();

                   if (checkBox1.Checked)

                       Close();

               }

               catch (SqlException se)

               {

                   MessageBox.Show("Ошибка подключения: " + se.Message);

                   connection.Close();

                   return;

               }

           }

           else

           {

               newCommand = new SqlCommand("INSERT_A", connection);

               newCommand.CommandType = CommandType.StoredProcedure;

               newCommand.Parameters.Add(new SqlParameter("@FIO_a", SqlDbType.VarChar, 100));

               newCommand.Parameters["@FIO_a"].Value = textBox1.Text.Trim() + " " +

                   textBox2.Text.Trim() + " " +

                   textBox3.Text.Trim();

               newCommand.Parameters["@FIO_a"].Direction = ParameterDirection.Input;

               newCommand.Parameters.Add(new SqlParameter("@stat", SqlDbType.VarChar, 50));

               newCommand.Parameters["@stat"].Value = textBox4.Text.Trim();

               newCommand.Parameters["@stat"].Direction = ParameterDirection.Input;

               newCommand.Parameters.Add(new SqlParameter("@pol", SqlDbType.VarChar, 10));

               newCommand.Parameters["@pol"].Value = comboBox2.Text.Trim();

               newCommand.Parameters["@pol"].Direction = ParameterDirection.Input;

               newCommand.Parameters.Add(new SqlParameter("@ROL_ID", SqlDbType.Int));

               newCommand.Parameters["@ROL_ID"].Value = comboBox1.SelectedValue.ToString().Trim();

               newCommand.Parameters["@ROL_ID"].Direction = ParameterDirection.Input;

               try

               {

                   bool ch = true;

                   label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

                   label3.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

                   label4.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

                   label5.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

                   label6.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

                   

                   if (textBox1.Text.Trim() == "")

                   {

                       label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                       ch = false;

                   }

                   if (textBox2.Text.Trim() == "")

                   {

                       label3.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                       ch = false;

                   }

                   if (textBox3.Text.Trim() == "")

                   {

                       label4.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                       ch = false;

                   }

                   if (textBox4.Text.Trim() == "")

                   {

                       label5.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                       ch = false;

                   }

                   

                   if (comboBox2.SelectedIndex == -1)

                   {

                       label6.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                       ch = false;

                   }

                   if (!ch)

                   {

                       MessageBox.Show("Обязательные поля не заполнены!");

                       connection.Close();

                       return;

                   }

                   newCommand.ExecuteNonQuery();

                   MessageBox.Show("Добавлен новый актер");

                   accept = true;

                   connection.Close();

                   if (checkBox1.Checked)

                       Close();

                   else

                   {

                       textBox1.Text = "";

                       textBox2.Text = "";

                       textBox3.Text = "";

                       textBox4.Text = "";

                       comboBox2.SelectedIndex = -1;

                   }

               }

               catch (SqlException se)

               {

                   MessageBox.Show("Ошибка подключения: " + se.Message);

                   connection.Close();

                   return;

               }

       }

       

       }

       private void checkBox2_CheckedChanged(object sender, EventArgs e)

       {

           if (checkBox2.Checked)

           {              

               label3.Visible = false;

               label4.Visible = false;

               label5.Visible = false;

               label6.Visible = false;

               textBox1.Visible = false;

               textBox2.Visible = false;

               textBox3.Visible = false;

               textBox4.Visible = false;

               comboBox2.Visible = false;

               comboBox3.Visible = true;

               label2.Text = "Актер:";

           }

           else

           {

               label3.Visible = true;

               label4.Visible = true;

               label5.Visible = true;

               label6.Visible = true;

               textBox1.Visible = true;

               textBox2.Visible = true;

               textBox3.Visible = true;

               textBox4.Visible = true;

               comboBox2.Visible = true;

               comboBox3.Visible = false;

               label2.Text = "Фамилия:";

           }

       }

       private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

       {

       }

     }

   

   

}

FormRolls.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Theatre

{

   public partial class FormRolls : Form

   {

       SqlConnection connection;

       public bool accept = false;

       public FormRolls()

       {

           InitializeComponent();

           connection = new SqlConnection(@"Data Source = (local);

                           Initial Catalog = Theatre;

                           Integrated Security=True");

           SqlCommand SqlC = new SqlCommand

             ("Select SPEC_ID, Name_spec from performances", connection);

           DataTable dt = new DataTable();

           SqlDataAdapter da = new SqlDataAdapter(SqlC);

           dt.Clear();

           da.Fill(dt);

           comboBox2.DataSource = dt;

           comboBox2.DisplayMember = "Name_spec";

           comboBox2.ValueMember = "SPEC_ID";

           SqlCommand SqlC2 = new SqlCommand

             ("Select ACT_ID, FIO_a from actors", connection);

           DataTable dt1 = new DataTable();

           SqlDataAdapter da1 = new SqlDataAdapter(SqlC2);

           dt1.Clear();

           da1.Fill(dt1);

           comboBox1.DataSource = dt1;

           comboBox1.DisplayMember = "FIO_a";

           comboBox1.ValueMember = "ACT_ID";

           SqlCommand SqlC3 = new SqlCommand

             ("Select ROL_ID, roll from rol", connection);

           DataTable dt2 = new DataTable();

           SqlDataAdapter da2 = new SqlDataAdapter(SqlC3);

           dt2.Clear();

           da2.Fill(dt2);

           comboBox3.DataSource = dt2;

           comboBox3.DisplayMember = "roll";

           comboBox3.ValueMember = "ROL_ID";

           connection.Close();

           comboBox1.Text = "";

           comboBox2.Text = "";

           comboBox3.Text = "";

           this.ShowDialog();

       }

       private void FormRolls_Load(object sender, EventArgs e)

       {

       }

       private void button1_Click(object sender, EventArgs e)

       {

             connection.Open();

           SqlCommand newCommand = new SqlCommand();

           if (checkBox2.Checked)

           {

               newCommand = new SqlCommand("INSERT INTO act_rol (ACT_ID, ROL_ID) VALUES (@ACT_ID, @ROL_ID)", connection);

               newCommand.CommandType = CommandType.Text;

               newCommand.Parameters.Add(new SqlParameter("@ACT_ID", SqlDbType.Int));

               newCommand.Parameters["@ACT_ID"].Value = comboBox1.SelectedValue.ToString().Trim();

               newCommand.Parameters["@ACT_ID"].Direction = ParameterDirection.Input;

               newCommand.Parameters.Add(new SqlParameter("@ROL_ID", SqlDbType.Int));

               newCommand.Parameters["@ROL_ID"].Value = comboBox3.SelectedValue.ToString().Trim();

               newCommand.Parameters["@ROL_ID"].Direction = ParameterDirection.Input;

               try

               {

                   newCommand.ExecuteNonQuery();

                   MessageBox.Show("Добавлен новый актер");

                   accept = true;

                   connection.Close();

                   if (checkBox1.Checked)

                       Close();

               }

               catch (SqlException se)

               {

                   MessageBox.Show("Ошибка подключения: " + se.Message);

                   connection.Close();

                   return;

               }

           }

           else

           {

           newCommand = new SqlCommand("INSERT_R", connection);

           newCommand.CommandType = CommandType.StoredProcedure;

           

           newCommand.Parameters.Add(new SqlParameter("@roll", SqlDbType.VarChar, 100));

           newCommand.Parameters["@roll"].Value = textBox1.Text.Trim();

           newCommand.Parameters["@roll"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@amplya", SqlDbType.VarChar, 100));

           newCommand.Parameters["@amplya"].Value = textBox2.Text.Trim();

           newCommand.Parameters["@amplya"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@SPEC_ID", SqlDbType.Int));

           newCommand.Parameters["@SPEC_ID"].Value = comboBox2.SelectedValue.ToString().Trim();

           newCommand.Parameters["@SPEC_ID"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@ACT_ID", SqlDbType.Int));

           newCommand.Parameters["@ACT_ID"].Value = comboBox1.SelectedValue.ToString().Trim();

           newCommand.Parameters["@ACT_ID"].Direction = ParameterDirection.Input;

           try

           {

               bool ch = true;

              

               label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label3.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               

               if (textBox1.Text.Trim() == "")

               {

                   label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (textBox2.Text.Trim() == "")

               {

                   label3.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

              

               if (!ch)

               {

                   MessageBox.Show("Обязательные поля не заполнены!");

                   connection.Close();

                   return;

               }

               newCommand.ExecuteNonQuery();

               MessageBox.Show("Добавлен новый актер");

               accept = true;

               connection.Close();

               if (checkBox1.Checked)

                   Close();

               else

               {

                   textBox1.Text = "";

                   textBox2.Text = "";

 

               }

           }

           catch (SqlException se)

           {

               MessageBox.Show("Ошибка подключения: " + se.Message);

               connection.Close();

               return;

           }

       }

       

       }

       private void checkBox2_CheckedChanged(object sender, EventArgs e)

       {

           if (checkBox2.Checked)

           {

               label3.Visible = false;

               label4.Visible = false;

               textBox1.Visible = false;

               textBox2.Visible = false;

               comboBox2.Visible = false;

               comboBox3.Visible = true;

           }

           else

           {

               label3.Visible = true;

               label4.Visible = true;

               textBox1.Visible = true;

               textBox2.Visible = true;

               comboBox2.Visible = true;

               comboBox3.Visible = false;

           }

       }

       private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

       {

       }

     }

   

   

}

Form_Actors.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Theatre

{

   public partial class Form_Actors : Form

   {

       SqlConnection connection;

       public bool accept = false;

       public Form_Actors()

       {

           InitializeComponent();

           connection = new SqlConnection(@"Data Source = (local);

                           Initial Catalog = Theatre;

                           Integrated Security=True");

           SqlCommand SqlC = new SqlCommand

             ("Select SPEC_ID, Name_spec from performances", connection);

           DataTable dt = new DataTable();

           SqlDataAdapter da = new SqlDataAdapter(SqlC);

           dt.Clear();

           da.Fill(dt);

           comboBox2.DataSource = dt;

           comboBox2.DisplayMember = "Name_spec";

           comboBox2.ValueMember = "SPEC_ID";

           connection.Close();

           comboBox2.Text = "";

           this.ShowDialog();

       }

       private void Form_Actors_Load(object sender, EventArgs e)

       {

       }

       private void label2_Click(object sender, EventArgs e)

       {

       }

       private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

       {

       }

       private void button1_Click(object sender, EventArgs e)

       {

           connection.Open();

           SqlCommand newCommand = new SqlCommand();

           newCommand = new SqlCommand("INSERT_AR", connection);

           newCommand.CommandType = CommandType.StoredProcedure;

           newCommand.Parameters.Add(new SqlParameter("@FIO_a", SqlDbType.VarChar, 100));

           newCommand.Parameters["@FIO_a"].Value = textBox1.Text.Trim() + " " +

               textBox2.Text.Trim() + " " +

               textBox3.Text.Trim();

           newCommand.Parameters["@FIO_a"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@stat", SqlDbType.VarChar, 50));

           newCommand.Parameters["@stat"].Value = textBox4.Text.Trim();

           newCommand.Parameters["@stat"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@pol", SqlDbType.VarChar, 10));

           newCommand.Parameters["@pol"].Value = comboBox1.Text.Trim();

           newCommand.Parameters["@pol"].Direction = ParameterDirection.Input;

           

           newCommand.Parameters.Add(new SqlParameter("@roll", SqlDbType.VarChar, 100));

           newCommand.Parameters["@roll"].Value = textBox5.Text.Trim();

           newCommand.Parameters["@roll"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@amplya", SqlDbType.VarChar, 100));

           newCommand.Parameters["@amplya"].Value = textBox6.Text.Trim();

           newCommand.Parameters["@amplya"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@SPEC_ID", SqlDbType.Int));

           newCommand.Parameters["@SPEC_ID"].Value = comboBox2.SelectedValue.ToString().Trim();

           newCommand.Parameters["@SPEC_ID"].Direction = ParameterDirection.Input;

           try

           {

               bool ch = true;

               label1.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label7.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label8.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label4.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label5.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label6.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               if (textBox1.Text.Trim() == "")

               {

                   label1.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (textBox2.Text.Trim() == "")

               {

                   label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (textBox3.Text.Trim() == "")

               {

                   label4.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (textBox4.Text.Trim() == "")

               {

                   label5.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (textBox5.Text.Trim() == "")

               {

                   label6.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (textBox6.Text.Trim() == "")

               {

                   label7.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (comboBox1.SelectedIndex == -1)

               {

                   label6.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (!ch)

               {

                   MessageBox.Show("Обязательные поля не заполнены!");

                   connection.Close();

                   return;

               }

               newCommand.ExecuteNonQuery();

               MessageBox.Show("Добавлен новый актер");

               accept = true;

               connection.Close();

               if (checkBox1.Checked)

                   Close();

               else

               {

                   textBox1.Text = "";

                   textBox2.Text = "";

                   textBox3.Text = "";

                   textBox4.Text = "";

                   comboBox1.SelectedIndex = -1;

               }

           }

           catch (SqlException se)

           {

               MessageBox.Show("Ошибка подключения: " + se.Message);

               connection.Close();

               return;

           }

       }

   }

}

Form2.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Theatre

{

   public partial class Form2 : Form

   {

       SqlConnection connection;

       public bool accept = false;

       public Form2()

       {

           InitializeComponent();

           connection = new SqlConnection(@"Data Source = (local);

                           Initial Catalog = Theatre;

                           Integrated Security=True");

           SqlCommand SqlC = new SqlCommand

             ("Select SPEC_ID, Name_spec from performances", connection);

           DataTable dt = new DataTable();

           SqlDataAdapter da = new SqlDataAdapter(SqlC);

           dt.Clear();

           da.Fill(dt);

           comboBox1.DataSource = dt;

           comboBox1.DisplayMember = "Name_spec";

           comboBox1.ValueMember = "SPEC_ID";

           connection.Close();

           comboBox1.Text = "";

           this.ShowDialog();

       }

       private void Form2_Load(object sender, EventArgs e)

       {

         

       }

       /// <summary>

       /// добавление билета

       /// </summary>

       /// <param name="sender"></param>

       /// <param name="e"></param>

       private void button1_Click(object sender, EventArgs e)

       {

           connection.Open();

           SqlCommand newCommand = new SqlCommand();

           newCommand = new SqlCommand

                       ("Insert into Ticket (SPEC_ID, mesto, date_prov, kassir)" +

                       " Values (@SPEC_ID, @mesto, @date_prov, 'Кассир №1') ",

                       connection);

           newCommand.CommandType = CommandType.Text;

           newCommand.Parameters.Add(new SqlParameter("@SPEC_ID", SqlDbType.Int));

           newCommand.Parameters["@SPEC_ID"].Value = comboBox1.SelectedValue.ToString().Trim();

           newCommand.Parameters["@SPEC_ID"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@mesto", SqlDbType.VarChar, 50));

           newCommand.Parameters["@mesto"].Value = textBox1.Text;

           newCommand.Parameters["@mesto"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@date_prov", SqlDbType.DateTime));

           newCommand.Parameters["@date_prov"].Value = Convert.ToDateTime(string.Format("{2}-{1}-{0}", (int.Parse(textBox2.Text).ToString()), (int.Parse(textBox3.Text).ToString()), (int.Parse(textBox4.Text).ToString())));

           newCommand.Parameters["@date_prov"].Direction = ParameterDirection.Input;

           try

           {

               bool ch = true;

               label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               label3.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

               if ((textBox1.Text.Trim() == "") || (int.Parse(textBox1.Text) == 0))

               {

                   label2.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if ((textBox2.Text.Trim() == "") || (int.Parse(textBox2.Text) > 31) || (int.Parse(textBox2.Text) < 1) || (textBox3.Text.Trim() == "") || (int.Parse(textBox3.Text) > 12) || (int.Parse(textBox3.Text) < 1) || (textBox4.Text.Trim() == "") || (int.Parse(textBox4.Text) > 2020) || (int.Parse(textBox4.Text) < 2013))

               {

                   label3.Font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Bold, GraphicsUnit.Point);

                   ch = false;

               }

               if (!ch)

               {

                   MessageBox.Show("Обязательные поля не заполнены!");

                   connection.Close();

                   return;

               }

               newCommand.ExecuteNonQuery();

               MessageBox.Show("Добавление завершенно");

               accept = true;

               if (checkBox1.Checked)

                   Close();

               else

               {

                   textBox1.Text = "";

               }

           }

           catch (SqlException se)

           {

               MessageBox.Show("Ошибка подключения: " + se.Message);

               connection.Close();

               return;

           }

       }

   }

}

Основная форма

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Theatre

{

   public partial class Form1 : Form

   {

       SqlConnection connection;

       public Form1()

       {

           InitializeComponent();

           connection = new SqlConnection(@"Data Source = (local);

                           Initial Catalog = Theatre;

                           Integrated Security=True");

           try

           {

               connection.Open();

           }

           catch (SqlException se)

           {

               MessageBox.Show("Ошибка подключения: {0}", se.Message);

               return;

           }

           SqlCommand SqlC = new SqlCommand

              ("Select SPEC_ID, Name_spec from performances", connection);

           DataTable dt = new DataTable();

           SqlDataAdapter da = new SqlDataAdapter(SqlC);

           dt.Clear();

           da.Fill(dt);

           DataTable dt1 = new DataTable();

           SqlDataAdapter da1 = new SqlDataAdapter(SqlC);

           dt1.Clear();

           da1.Fill(dt1);

           comboBox1.DataSource = dt;

           comboBox1.DisplayMember = "Name_spec";

           comboBox1.ValueMember = "SPEC_ID";

           comboBox2.DataSource = dt1;

           comboBox2.DisplayMember = "Name_spec";

           comboBox2.ValueMember = "SPEC_ID";

           connection.Close();

           comboBox1.Text = "";

           comboBox2.Text = "";

           BiletRefresh();

           ar_Refresh();

           dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

           dataGridView2.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

       }

       private void ar_Refresh()

       {

           connection.Open();

           SqlCommand newCommand = new SqlCommand();

           newCommand = new SqlCommand("Search_ar", connection);

           newCommand.CommandType = CommandType.StoredProcedure;

           newCommand.Parameters.Add(new SqlParameter("@SPEC_ID", SqlDbType.Int));

           newCommand.Parameters["@SPEC_ID"].Value = comboBox2.SelectedValue.ToString().Trim();

           newCommand.Parameters["@SPEC_ID"].Direction = ParameterDirection.Input;

           newCommand.ExecuteNonQuery();

           connection.Close();

           DataTable dt = new DataTable();

           SqlDataAdapter da = new SqlDataAdapter(newCommand);

           dt.Clear();

           da.Fill(dt);

           dataGridView2.DataSource = dt;

           dataGridView2.Columns[0].Visible = false;

           dataGridView2.Columns[1].Visible = false;

           dataGridView2.Columns[2].Visible = false;

       }

       private void BiletRefresh()

       {

           connection.Open();

           SqlCommand newCommand = new SqlCommand();

           newCommand = new SqlCommand("Search_Ticket", connection);

           newCommand.CommandType = CommandType.StoredProcedure;

           newCommand.Parameters.Add(new SqlParameter("@mesto", SqlDbType.Int));

           if (textBox4.Text.Trim() == "")

               newCommand.Parameters["@mesto"].Value = DBNull.Value;

           else

               newCommand.Parameters["@mesto"].Value = textBox4.Text.Trim();

           newCommand.Parameters["@mesto"].Direction = ParameterDirection.Input;

           newCommand.Parameters.Add(new SqlParameter("@SPEC_ID", SqlDbType.Int));

           newCommand.Parameters["@SPEC_ID"].Value = comboBox1.SelectedValue.ToString().Trim();

           newCommand.Parameters["@SPEC_ID"].Direction = ParameterDirection.Input;

           newCommand.ExecuteNonQuery();

           connection.Close();

           DataTable dt = new DataTable();

           SqlDataAdapter da = new SqlDataAdapter(newCommand);

           dt.Clear();

           da.Fill(dt);

           dataGridView1.DataSource = dt;

           dataGridView1.Columns[0].Visible = false;

       }

       private void label3_Click(object sender, EventArgs e)

       {

       }

       private void tabPage2_Click(object sender, EventArgs e)

       {

       }

       private void button3_Click(object sender, EventArgs e)

       {

           Form_Actors DialogWindow = new Form_Actors();

           if (DialogWindow.accept)

           {

               ar_Refresh();

             //  dataGridView2.Rows[0].Selected = false;

              // dataGridView2.Rows[dataGridView2.RowCount - 1].Selected = true;

           }

       }

/// <summary>

/// добавление билета

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

       private void button1_Click(object sender, EventArgs e)

       {

           Form2 DialogWindow = new Form2();

           if (DialogWindow.accept)

           {

               BiletRefresh();

               //dataGridView1.Rows[0].Selected = false;

             //  dataGridView1.Rows[dataGridView1.RowCount - 1].Selected = true;

           }

       }

       private void button5_Click(object sender, EventArgs e)

       {

           new Form_rehearsal().ShowDialog();

       }

       private void button7_Click(object sender, EventArgs e)

       {

           BiletRefresh();

       }

       private void button2_Click(object sender, EventArgs e)

       {

           string s = "";

           int i;

           connection.Open();

           for (i = 0; i <= dataGridView1.RowCount - 1; i++)

               if (dataGridView1.Rows[i].Selected)

               {

                   s += dataGridView1.Rows[i].Cells[0].Value.ToString();

                   break;

               }

           if (s != "")

           {

               DialogResult result = MessageBox.Show("Вы действительно хотите\nпродать этот билет?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

               if (result == DialogResult.Yes)

               {

                   SqlCommand newCommand = new SqlCommand("Delete From Ticket" +

                       " where BIL_ID in (" + s + ")", connection);

                   newCommand.CommandType = CommandType.Text;

                   newCommand.ExecuteNonQuery();

                   connection.Close();

                   MessageBox.Show("Билет продан");

                   BiletRefresh();

               }

               else

                   connection.Close();

           }

           else

           {

               connection.Close();

               MessageBox.Show("Ничего не выделено!");

           }

       }

       private void button4_Click(object sender, EventArgs e)

       {

           string s = "";

           string s1 = "";

           int i;

           connection.Open();

           for (i = 0; i <= dataGridView2.RowCount - 1; i++)

               if (dataGridView2.Rows[i].Selected)

               {

                   s += dataGridView2.Rows[i].Cells[0].Value.ToString();

                   s1 += dataGridView2.Rows[i].Cells[1].Value.ToString();

                   break;

               }

           if (s != "")

           {

               DialogResult result = MessageBox.Show("Вы действительно хотите\nразорвать контракт на эту роль?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

               if (result == DialogResult.Yes)

               {

                   SqlCommand newCommand = new SqlCommand("Delete From ACT_ROL" +

                       " where ACT_ID in (" + s + ") and ROL_ID in ("+ s1 + ")", connection);

                   newCommand.CommandType = CommandType.Text;

                   newCommand.ExecuteNonQuery();

                   connection.Close();

                   MessageBox.Show("Контракт разорван");

                   ar_Refresh();

               }

               else

                   connection.Close();

           }

           else

           {

               connection.Close();

               MessageBox.Show("Ничего не выделено!");

           }

       }

       private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

       {

           BiletRefresh();

       }

       private void button8_Click(object sender, EventArgs e)

       {

           FormRolls DialogWindow = new FormRolls();

           if (DialogWindow.accept)

           {

               ar_Refresh();

               //dataGridView2.Rows[0].Selected = false;

              // dataGridView2.Rows[dataGridView2.RowCount - 1].Selected = true;

           }

       }

       private void button5_Click_1(object sender, EventArgs e)

       {

           FormACTOR DialogWindow = new FormACTOR();

           if (DialogWindow.accept)

           {

               ar_Refresh();

              // dataGridView2.Rows[0].Selected = false;

              // dataGridView2.Rows[dataGridView2.RowCount - 1].Selected = true;

           }

       }

       private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

       {

           ar_Refresh();

       }

   }

}


 

А также другие работы, которые могут Вас заинтересовать

20794. Мотивація персоналу підприємства побутового обслуговування (на прикладі ТОВ «Clean group») 540 KB
  Розглянути сутність мотивації як елементу управління персоналом; дослідити сучасні методи та інструментарій мотивації праці в управлінні; проаналізувати особливості мотивації персоналу на підприємствах сфери послуг; дослідити основні тенденції розвитку сфери послуг в Україні; проаналізувати діяльність підприємства, стан управління персоналом; сформувати пропозиції щодо покращення стану системи мотивації.
20795. Законодавче забезпечення прав пацієнтів в Україні 223 KB
  Основи законодавства України про охорону здоровя визначають правові, організаційні, економічні та соціальні засади охорони здоровя в Україні, регулюють суспільні відносини у цій сфері з метою забезпечення гармонійного розвитку фізичних і духовних сил
20796. Моделирование воздействия электрических импульсов различной частоты на симпатическую нервную систему 3.03 MB
  Целью моей работы является разработка компьютерной модели лечения артериальной гипертензии новым и в настоящее время активно исследуемым методом радиочастотной деструкции нервных клеток почечной артерии.
20797. Виды, причины и типы инфляции 223.5 KB
  Инфляция (от лат. inflation — вздутие, разбухание) — непрерывное повышение среднего уровня цен в экономике, обесценение денег, происходящее из-за того, что в экономике их становится больше, чем нужно, т. с. денежная масса, находящаяся в обращении, «разбухает». Более строгое определение инфляции, учитывающее причины и некоторые следствия роста среднего уровня цен в экономике
20798. ДНК – ТРАНСПОЗОНЫ. МОБИЛЬНЫЕ ГЕНЕТИЧЕСКИЕ ЭЛЕМЕНТЫ. ЗНАЧЕНИЕ ДЛЯ ВИРУСОВ И ЭУКАРИОТ 181.5 KB
  Подвижные элементы эукариот представлены отдельными семействами, сходными по своей структуре и поведению. Внутри семейства различают подсемейства идентичных или очень сходных подвижных элементов, число которых колеблется от нескольких копий до нескольких тысяч копий на геном
20799. Николай II 73 KB
  Императора Николая II можно оценивать как хорошего или плохого правителя, но нельзя точно утверждать или доказывать то, чего мы на самом деле не знаем, ведь в революции верх одержали большевики, а историю, как известно всегда пишет победитель, не смотря на то, лживая это история или правдивая.
20800. Опыт выживания в проекте-камикадзе Д.Н. Топорков 5.33 MB
  Состояние после года разработки: директор по ИТ заказчика, курирующий этот проект уволен, генеральный директор компании-разработчика понижен акционерами до зама, главный архитектор лишился доверия начальства
20801. Екологічний моніторинг. Система екологічної інформації 52.5 KB
  Фоновий науковий моніторинг навколишнього природного середовища це спеціальні високоточні спостереження за всіма складовими навколишнього середовища а також за характером складом кругообігом та міграцією забруднювальних речовин за реакцією організмів на забруднення на рівні окремих популяцій екосистем і біосфери в цілому. Ряд країн має мережу надземних станцій на яких здійснюються неперервний відбір та аналіз проб на наявність в атмосфері забруднювальних речовин СО2 СО пилу свинцю радіонуклідів. Державний комітет з...
20802. Економічні методи управління, регулювання раціонального природокористування та охорони навколишнього середовища 137.5 KB
  Це платежі за ресурси та забруднення надання пільг в оподаткуванні підприємств надання на пільгових умовах коротко і довгострокових позичок для реалізації проектів щодо забезпечення раціонального використання природних ресурсів та охорони навколишнього природного середовища звільнення від оподаткування фондів охорони довкілля; передача частини коштів позабюджетних фондів охорони навколишнього природного середовища на довготривалих договірних умовах підприємствам установам організаціям і громадянам для вжиття заходів із гарантованого...