98825

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

Курсовая

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

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

Русский

2015-11-07

453.73 KB

4 чел.

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

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

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

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

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

 

«УТВЕРЖДАЮ»

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

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

_____________________

«___»__________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();

       }

   }

}


 

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

9404. Следственные действия и порядок их производства 106.5 KB
  Тема 11: Следственные действия и порядок их производства. Понятие, виды и система следственных действий. Двойственный подход к определению понятия следственных действий. С принятием УПК под следственными действиями понимаются процессуальные де...
9405. Приостановление предварительного расследования 57 KB
  Тема №12. Приостановление предварительного расследования. понятие, основания и условия приостановления предварительного следствия. процессуальный порядок приостановления предварительного следствия. возобновление предварительного сл...
9406. Прекращение уголовного дела. 36 KB
  Тема № 13. Прекращение уголовного дела. понятие и сущность прекращения УД. Прекращение уголовного преследования. основания прекращения УД и уголовного преследования. процессуальный порядок прекращения УД и уголовного преследования....
9407. Окончание предварительного следствия. Составление обвинительного заключения 49 KB
  Тема №14. Окончание предварительного следствия. Составление обвинительного заключения. основания окончания предварительного следствия и сущность осуществляемой при этом деятельности процессуальный порядок осуществления действий по оконча...
9408. Обвинительное заключение 27 KB
  Тема №15. Обвинительное заключение. понятие, сущность и значение структура и содержание Обвинительное заключение (ОЗ) завершает деятельность следователя по расследованию уголовного дела, отражает сущность обвинения, выводы след...
9409. Дознание. Обвинительный акт, завершающий дознание 28 KB
  Дознание. Обвинительный акт, завершающий дознание - равно как и ОЗ является итоговым процессуальным документом. Им завершается производство дознания. С момента составления появляется обвиняемый. Ч.2 ст.225 УПК РФ обязывает дознавателя ознакомить обв...
9410. Подсудность уголовных дел. Подготовка и назначение судебного заседания 68.5 KB
  Тема №17: Подсудность уголовных дел. Подготовка и назначение судебного заседания. Подсудность: понятие и виды. Ст.47 К РФ: каждому гарантируется, что никто не может быть лишен права на рассмотрение его дела в том суде и тем судьей, к подсуднос...
9411. Судебное разбирательство в суде 1 инстанции 57 KB
  Тема: Судебное разбирательство в суде 1 инстанции. Судебное заседание - процессуальная форма осуществления правосудия в ходе досудебного и судебного производства по уголовному делу (п.50 ст.5 УПК РФ). Судебное разбирательство в уголовном процес...
9412. Государственное регулирование инвестиционной деятельности в РФ 39 KB
  Тема № 4: Государственное регулирование инвестиционной деятельности в РФ. Форма и методы государственного регулирования инвестиций. Государственное регулирование инвестиционной деятельности в РФ осуществляется в 3 формах: создание...