Разработка приложения по работе с базой данных "Больница"

 

Содержание


Введение

Постановка задачи

1. Проектирование базы данных

1.1 Построение концептуальной модели

1.2.1 Документирование атрибутов

1.2.2 Определение требований поддержки целостности данных

1.3 Построение физической модели

1.4 Хранимые процедуры, функции и триггеры

1.4.1 Хранимые процедуры, функции и триггеры в приложении

2. Разработка приложения по работе с базой данных

2.1 Назначение и основные функции приложения

2.2 Структура приложения

2.3 Тестирование программы

2.4 Руководство пользователю

Заключение

Приложение А. Графические материалы

Приложение Б. Листинг программных модулей


Введение


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

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

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

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

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

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

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

И все же, файловая система совершенно непригодна, когда необходимо устанавливать перекрёстные связи, или выполнять анализ и обработку данных. Основной единицей информации является файл, который является простым набором записей, содержащих логически связанные данные. Каждая запись состоит из одного или нескольких полей, является характеристикой моделируемого объекта. В ходе работы с файловой системой проявилось множество недостатков, и возникла необходимость использовать иной подход для повышения эффективности работы с данными. Эта необходимость привела к рождению баз данных и систем управления базами данных (СУБД).

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

·Контроль за избыточностью и противоречивостью данных;

·Увеличение полезной информации при том же объёме хранимой информации;

·Совместное использование данных;

·Поддержка целостности данных;

·Обеспечение безопасности данных;

·Наличие службы пользовательского копирования и восстановления данных.

Однако имеются так же и свои недостатки:

·Сложность;

·Стоимость СУБД;

·Дополнительные затраты на аппаратное обеспечение;

·Затраты на преобразование.

Постановка задачи


Разработать приложение по работе с базой данных «Больница».

Исходные данные к проекту: база данных должна быть создана в MS SQL Server 2008, среда разработки - MS Visual Studio 2012.

Задача данной курсовой работы - информационная поддержка больницы. База данных должна осуществлять: учет поступления пациентов (по отделениям); учет проведённого лечения; учет платных услуг с выдачей счетов на оплату; ведение архива выписанных пациентов. Необходимо предусмотреть определения (по отделениям): пропускной способности больницы; среднего времени пребывания больных в стационаре; наличия свободных мест в палатах (отдельно для мужчин и женщин); количества прооперированных пациентов (из них - с осложнениями и умерших); смертности

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


1.Проектирование базы данных


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

Проектирование БД разбивается на 3 этапа:

·концептуальное проектирование;

·логическое проектирование;

·физическое проектирование.


.1Построение концептуальной модели


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

В соответствии с предметной областью система строится с учетом следующих особенностей:

·Каждый пациент поступает в одно отделение;

·Для каждого пациента учитывается проведённое лечение, и выставляется счет;

·Мест в отделениях ограничено;

·В каждом отделении свои врачи;

·Для каждого пациента назначается персональное лечение;

Выделим базовые сущности этой предметной области:

·Врачи - сильная сущность, содержит информацию о врачах;

·Пациенты - сильная сущность, содержит информацию о пациентах больницы;

·Лечение - слабая сущность, содержит информацию о проведённом лечении;

.Врачи. Атрибуты сущности - ФИО, должность, личный номер врача и номер отделения;

.Пациенты. Атрибуты сущности - ФИО, пол, личный номер пациента, номер отделения, день поступления, день выписки, смерть;

.Лечение. Атрибуты сущности - номер отделения, номер врача, номер пациента, номер услуги, номер препарата, операции, цена операции, количество операций, осложнения;

Составим начальный вариант ER-диаграммы, отображающий сущности и связи между ними. Полученная ER-диаграмма приведена на рисунке 1.1:


Рисунок 1.1 - ER-диаграмма концептуальной модели


В полученном ER-модуле нет:

-Связей многие ко многим;

-Сложных связей;

-Рекурсивных связей;

-Связей 1 к 1;

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

.Отделение. Атрибуты сущности - личный номер отделения, название отделения, количество женских палат, количество мужских палат, количество мест в палате;

.Услуги. Атрибуты сущности - личный номер услуги, название услуги, цена услуги;

.Препараты. Атрибуты сущности - личный номер препарата, название препарата, цена препарата;


.2Построение логической модели


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

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

Преобразование ER-диаграммы к реляционному виду содержится в приложении А1.


.2.1 Документирование атрибутов

О каждом атрибуте должны быть документированы следующие данные:

·имя атрибута и его описание

·тип данных и размерность значения

·значение, принимаемое для атрибута по умолчанию (если таковое имеется)

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


Таблица 3 - Атрибуты

Содержание поляИмя поляТип поляЗначение по умолчаниюПримечанияotdelenieКод отделенияid_otdintНетПервичный ключНазвание отдел.nazvanie_otdNvarchar(300)НетNULLКол. жен.палатw_palattinyintНетNULLКол. муж.палатm_palattinyintНетNULLКол. мест в палатеmest_v_palatetinyintНетNULLpacientКод пациентаid_pacintНетПервичный ключФИО пациентаfio_pacnvarchar(50)НетNULLКод отделенияid_otdintДаВторичный ключПол пациентаpol_pacnvarchar(1)НетNULLДень поступленияd_postupleniyadateНетNULLДень выпискиd_vipiskidateДаNULLСмертиsmertinvarchar(3)НетNULLvrachiКод врачаid_vrintНетПервичный ключФИО врачаfio_vrnvarchar(50)НетNULLДолжность врачаdolgn_vrnvarchar(30)НетNULLКод отделенияid_otdintДаВторичный ключpreparatКод препаратаid_printНетПервичный ключНазвание препар.nazvanie_prnvarchar(50)НетNULLЦена препаратаcena_printНетNULLuslugiКод услугиid_uslintНетПервичный ключНазвание услугиnazvanie_uslnvarchar(50)НетNULLЦена услугиcena_uslintНетNULLlechenieКод услугиid_uslintДаВторичный ключКод пациента id_pacintДаВторичный ключКод врачаid_vrintДаВторичный ключКод препаратаid_printДаВторичный ключКод отделенияid_otdintДаВторичный ключОперацииoperaciinvarchar(3)НетNULLЦена операции cena_opintНетNULLКол. операцийkol_opintНетNULLОсложненияoslojneniyanvarchar(3)ДаNULL

.2.2 Определение требований поддержки целостности данных

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

Различают следующие типы целостности данных:

·Обязательные данные

Указаны в Таблице 3. «Атрибуты сущностей и связей»

·Ограничение для доменов атрибутов

Указаны в Таблице 3. «Атрибуты сущностей и связей»

·Целостность сущностей

Заданные первичные ключи не должны иметь NULL-значения.

·Ссылочная целостность

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

·Требования предметной области

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


.3Построение физической модели


Физическое проектирование - это процедура создания описания конкретной реализации БД с описанием структуры хранения данных, методов доступа к данным. В данном случае реализация была осуществлена в MS SQL Server 2008.

Скрипт создания базы данных:

--create database bolnica

-1table otdelenie

(_otd int primary key,_otd nvarchar(300) not null,_palat tinyint not null,_palat tinyint not null,_v_palate tinyint not null

)

-drop table otdelenie

-2table vrachi

(_vr int Primary key,_vr nvarchar(50) not null,_vr nvarchar(30) not null,_otd int foreign key(id_otd) references otdelenie

)

-drop table vrachi

-3table pacient

(_pac int Primary key,_pac nvarchar(50) not null,_otd int foreign key(id_otd) references otdelenie,_pac nvarchar(1) not null,_postupleniya date not null,_vipiski date not null,nvarchar(3) not null,

)

-drop table pacient

-4table preparat

(_pr int Primary key,_pr nvarchar(50) not null,_pr int not null

)

-drop table preparat

-5table uslugi

(_usl int Primary key,_usl nvarchar(50) not null,_usl int not null

)

-drop table uslugi

-6table lechenie

(_usl int foreign key(id_usl) references uslugi,_pac int foreign key(id_pac) references pacient,_vr int foreign key(id_vr) references vrachi,_pr int foreign key(id_pr) references preparat,_otd int foreign key(id_otd) references otdelenie,nvarchar(3) not null,_op int not null,_op int not null

)

-drop table lechenie


Рисунок 1 - Таблица «otdelenie»


Рисунок 2 - Таблица «vrachi»


Рисунок 3 - Таблица «pacient »


Рисунок 4 - Таблица «preparat»


Рисунок 5 - Таблица «uslugi»

Рисунок 6 - Таблица «lechenie»


Рисунок 7 - Диаграмма базы данных


1.4Хранимые процедуры, функции и триггеры


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


.4.1Хранимые процедуры, функции и триггеры в приложении

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


Рисунок 8 - Список хранимых процедур, функций и триггеров


1)функция Post_po_otd() реализует учет поступления пациентов по отделениям

CREATE FUNCTION Post_po_otd()@Tb1 TABLE (Name nvarchar(50), Otdel nvarchar(50), Data_post date)into @Tb1fio_pac,nazvanie_otd,d_postupleniya FROM pacient INNER JOINON pacient.id_otd = otdelenie.id_otd* from Post_po_otd()

-DROP FUNCTION Post_po_otd

2)функция count_w_mest(@id_otd int) подсчитывает количество занятых женских мест в указанном отделении. Аналогичные действия, но уже для мужчин выполняет функция count_m_mest(@id_otd int). Обе эти функции используются в тригере prop_sp_bolnic, который определяет при внесении нового пациента в БД пропускную способность больницы, и в случае свободных мест помещает пациента в указанное отделение:

create function count_w_mest(@id_otd int)int@res int@res=(select COUNT(id_pac) from pacient where d_vipiski is null and pol_pac='w' and pacient.id_otd=@id_otd)@resdbo.count_w_mest(3)

-drop function count_w_mest

----------------------------------------------------------------------function count_m_mest(@id_otd int)int@res int@res=(select COUNT(id_pac) from pacient where d_vipiski is null and pol_pac='m' and pacient.id_otd=@id_otd)@resdbo.count_m_mest(5)

-drop function count_m_mest

----------------------------------------------------------------------TRIGGER prop_sp_bolnicpacientOF INSERT@count INT@ID int@pol nvarchar(3)@kolm int@kolW int@ID = (select id_otd from inserted)@pol = (select pol_pac from inserted)@kolm = (select m_palat*mest_v_palate from otdelenie where id_otd=@ID)@kolw = (select w_palat*mest_v_palate from otdelenie where id_otd=@ID)@pol = 'm'@count = (select dbo.count_m_mest(@ID))@count < @kolmINTO pacient

(id_pac,fio_pac,id_otd,pol_pac,d_postupleniya,d_vipiski,smerti)* from inserted'Пациент успешно добавлен' 'MESSAGE'select 'Отделение переполнено' 'MESSAGE'@pol = 'w'@count = (select dbo.count_w_mest(@ID))@count < @kolwINTO pacient

(id_pac,fio_pac,id_otd,pol_pac,d_postupleniya,d_vipiski,smerti)* from inserted'Пациент успешно добавлен' 'MESSAGE'select 'Отделение переполнено' 'MESSAGE'

--------------

-DROP TRIGGER prop_sp_bolnic

3)функция uchet_plat_usl() реализует учет платных услуг:

CREATE FUNCTION uchet_plat_usl()@Tb5 TABLE (naim_usl nvarchar(100),cena int)into @Tb5uslugi.nazvanie_usl, uslugi.cena_usluslugi

---------------------------------------------------------------------------* from uchet_plat_usl()

-DROP function uchet_plat_usl

)функция arhiv_vypisannyx() показывает архив выписанных пациентов:

CREATE FUNCTION arhiv_vypisannyx()@Tb5 TABLE (name nvarchar(30),data1 date, data2 date)exists (SELECT fio_pac, d_postupleniya, d_vipiski FROM pacientd_vipiski is not null)into @Tb5 SELECT fio_pac, d_postupleniya, d_vipiski FROM pacientd_vipiski is not null

---------------------------------------------------------------------------* from arhiv_vypisannyx()

-DROP function arhiv_vypisannyx

)функция prodolg_stac() рассчитывает и выводит среднюю продолжительность пребывания пациентов в больнице:

CREATE FUNCTION prodolg_stac()@Tb4 TABLE (data_sr int)into @Tb4 select AVG(DATEDIFF(DAY,pacient.d_postupleniya,pacient.d_vipiski))from pacient

---------------------------------------------------------------------------* from prodolg_stac()

-DROP function prodolg_stac

)функция proper_pac() выводит количество: прооперированных пациентов, пациентов с осложнениями и умерших

CREATE FUNCTION proper_pac()@Tb4 TABLE (gruppa nvarchar(30), kolvo int)exists (select lechenie.operacii from lechenie where lechenie.operacii = 'yes')into @Tb4(gruppa)('прооперированные')@Tb4 set kolvo = (select COUNT(lechenie.kol_op)from lechenie where gruppa='прооперированные')into @Tb4(gruppa)('с осложнениями')@Tb4 set kolvo = (select COUNT(lechenie.oslojneniya )from lechenie where lechenie.oslojneniya= 'yes')into @Tb4(gruppa)('смерть')@Tb4 set kolvo = (select COUNT(pacient.smerti )from pacient where pacient.smerti= 'yes')

---------------------------------------------------------------------------* from proper_pac()

-DROP function proper_pac

)функция smerti() подсчитывает и выводит количество умерших пациентов:

CREATE FUNCTION smerti()@Tb4 TABLE ( kolvo int)exists (select pacient.smerti from pacient where pacient.smerti = 'yes')into @Tb4COUNT(pacient.smerti )from pacient where pacient.smerti= 'yes'

---------------------------------------------------------------------------* from smerti()

-DROP function smerti

)хранимая процедура uchet_prov_lech реализует учет проведённого лечения:

CREATE procedure uchet_prov_lech

@IDpacienta int

-проверка наличияEXISTS(SELECT id_pac FROM pacient WHERE id_pac = @IDpacienta)pacient.fio_pac, uslugi.nazvanie_usl, preparat.nazvanie_pr, lechenie.kol_oppacient inner join lechenie on pacient.id_pac=lechenie.id_pac inner joinon preparat.id_pr= lechenie.id_pr inner join uslugi on lechenie.id_usl = uslugi.id_uslpacient.id_pac= @IDpacienta

---------------------------------------------------------------------------uchet_prov_lech 1

-DROP procedure uchet_prov_lech

)хранимая процедура oplata рассчитывает и предоставляет счет указанному пациенту:

CREATE procedure oplata

@IDpacienta intEXISTS(SELECT id_pac FROM pacient WHERE id_pac = @IDpacienta)pacient.fio_pac,(lechenie.cena_op+preparat.cena_pr+uslugi.cena_usl) from pacient,lechenie, preparat, uslugi where lechenie.id_pr=preparat.id_pr and lechenie.id_usl=uslugi.id_uslpacient.id_pac=lechenie.id_pac and pacient.id_pac = @IDpacienta

----------------------------------------------------------------------------oplata 1

-DROP procedure oplata

база данные больница

2.Разработка приложения по работе с базой данных


2.1Назначение и основные функции приложения


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

С помощью данного приложения пользователь может просматривать и редактировать таблицы pacient, otdelenie, vrachi, preparat, uslugi и lechenie


2.2Структура приложения

диаграмма приложения представлена в приложении А2.

Приложение представляет собой проект bolnica.sln, разработанный в среде MS Visual Studio 2012. Приложение состоит из элементов, представленных на рисунке 9:

Рисунок 9 - Структурная схема приложения


Таблица 4 Структура приложения

Название элементаНазначениеForm1Форма главного окна программы, которая позволяет просматривать и редактировать таблицы БДForm2Форма, содержащая информацию о разработчике приложения2.3 Тестирование программы


Тестирование программы проводилось на протяжении всего времени работы над приложением, и все найденные ошибки были устранены.

Тестирование проводилось на компьютере под управлением ОС Windows 7 Домашняя Базовая. Техническая база компьютера: CPU AMD Intel Core 2 Duo 2.0, 4Gb RAM, HDD 320Gb. Тестирование прошло успешно.

Приложение корректно работает в Windows 7. В результате детального тестирования не было выявлено неточностей или сбоев в работе приложения. Приложение отображает все необходимые данные.

Просмотр имеющихся данных:


Рисунок 10 -Просмотр данных


Добавление и удаление данных:

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


Рисунок 11 - Удаление строки прошло успешно


Редактирование данных:


Рисунок 12 - Изменения в таблице «pacient»


Рисунок 13 - Результат изменения в таблице «pacient»

Просмотр таблицы услуги:


Рисунок 14- Просмотр услуг


Рисунок 15 - Меню доступных запросов


Рисунок 16 - Выставление счета пациенту по его ID

Рисунок 17 - Учет пациентов по отделениям


Рисунок 18 - Учет проведённого лечения


Рисунок 19 - Учет платных услуг


Рисунок 20 - Архив выписанных пациентов


Рисунок 21 - Среднее время в стационаре


Рисунок 22 - Количество прооперированных, с осложнениями и умерших пациентов


Рисунок 23 - Смертность


2.4Руководство пользователю


Системные требования:

Операционная система Windows 7. Приложение не зависит от типа применяемого процессора.

Для того, чтобы приложение, описанное в курсовой работе, функционировало, необходимо подключить базу данных MS SQL Server 2008, а так же подключить базу данных bolnica.dbo.

Разработанный интерфейс прост в использовании (см. рис. 14 - 23). Для того, чтобы вводить или редактировать данные в приложении, нужно выбрать таблицу из списка таблиц, нажать кнопку «Показать», выполнить необходимые изменения и нажать кнопку «Редактировать». Чтобы выполнить специальные запросы и увидеть их результат, нужно зайти в Меню-> «выбираем интересующий запрос». Если нажать в меню «help» покажется окно с данными разработчика.

Основные виды работы с данными отображаются на форме1 на DataGridView1 (рис. 24):


Рисунок 24 - Главное окно программы

Заключение


В вышеизложенной курсовой работе была создана база данных «Больница», которая не охватывает весь возможный объем информации, подлежащей рассмотрению, но максимально близка к этому и хранит достаточно сведений. В рамках выполнения курсовой работы, были разработаны хранимые процедуры, функции и триггер, которые позволяют более эффективно работать с базой данных. Также было разработано приложения для работы с базой данных, которое представляет данные в удобной для пользователя форме и позволяет работать с информацией из базы данных, не обращаясь к SQL Server вручную. Это делает мою базу данных доступной к применению большему числу пользователей, что является большим плюсом. Разработанное приложение позволяет просматривать таблицы базы данных, редактировать данные, просматривать отчеты о проведенном лечении, выписанных пациентах и.т.д. При тестировании не было выявлено ошибок, что означает, что наше приложение работает корректно. Данную базу данных можно использовать в больницах, для упрощения работы сотрудникам и уменьшения количества документации.


Приложение А. Графические материалы



Приложение Б. Листинг программных модулей

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

{partial class Form1 : Form

{dataadapter;dataset_;cb;Form1()

{();

}void button1_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");query = string.Empty;.ReadOnly = false;(radioButton1.Checked == true)

{= "SELECT * FROM pacient";= new SqlDataAdapter(query, conn);= new SqlCommandBuilder(dataadapter);_ = new DataSet();.Fill(dataset_, "pacient");.DataSource = dataset_;.DataMember = "pacient";

}if (radioButton2.Checked == true)

{= "SELECT * FROM otdelenie";

//-------------------------------= new SqlDataAdapter(query, conn);= new SqlCommandBuilder(dataadapter);_ = new DataSet();.Fill(dataset_, "otdelenie");.DataSource = dataset_;.DataMember = "otdelenie";

}if (radioButton3.Checked == true)

{= "SELECT * FROM vrachi";

//-------------------------------= new SqlDataAdapter(query, conn);= new SqlCommandBuilder(dataadapter);_ = new DataSet();.Fill(dataset_, "vrachi");.DataSource = dataset_;.DataMember = "vrachi";

}if (radioButton4.Checked == true)

{= "select * from uslugi";

//-------------------------------= new SqlDataAdapter(query, conn);= new SqlCommandBuilder(dataadapter);_ = new DataSet();.Fill(dataset_, "uslugi");.DataSource = dataset_;.DataMember = "uslugi";

}if (radioButton5.Checked == true)

{= "SELECT * FROM preparat";

//-------------------------------= new SqlDataAdapter(query, conn);= new SqlCommandBuilder(dataadapter);_ = new DataSet();.Fill(dataset_, "preparat");.DataSource = dataset_;.DataMember = "preparat";

}if (radioButton6.Checked == true)

{= "SELECT * FROM lechenie";

//-------------------------------= new SqlDataAdapter(query, conn);= new SqlCommandBuilder(dataadapter);_ = new DataSet();.Fill(dataset_, "lechenie");.DataSource = dataset_;.DataMember = "lechenie";

}.Clear();.Text = query;

}void button3_Click(object sender, EventArgs e)

{(radioButton1.Checked == true)

{.GetUpdateCommand();.Update(dataset_, "pacient");.Text = "SQL Database Updated!";

}if (radioButton2.Checked == true)

{.GetUpdateCommand();.Update(dataset_, "otdeleniye");.Text = "SQL Database Updated!";

}if (radioButton3.Checked == true)

{.GetUpdateCommand();.Update(dataset_, "vrachi");.Text = "SQL Database Updated!";

}if (radioButton4.Checked == true)

{.GetUpdateCommand();.Update(dataset_, "uslugi");.Text = "SQL Database Updated!";

}if (radioButton5.Checked == true)

{.GetUpdateCommand();.Update(dataset_, "preparat");.Text = "SQL Database Updated!";

}if (radioButton6.Checked == true)

{.GetUpdateCommand();.Update(dataset_, "lechenie");.Text = "SQL Database Updated!";

}

}void учетПациентовПоОтделениямToolStripMenuItem_Click(object sender, EventArgs e)

{

//Post_po_otdconn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "select * from Post_po_otd()";.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)

{.Show("Error happened " + e.Context.ToString());.Clear();.Text = "Произошла ошибка ";(e.Context == DataGridViewDataErrorContexts.Commit)

{.Show("Commit error");.Clear();.Text = "Commit error";

}(e.Context == DataGridViewDataErrorContexts.CurrentCellChange)

{.Show("Cell change");.Clear();.Text = "Cell change";

}(e.Context == DataGridViewDataErrorContexts.Parsing)

{.Show("parsing error");.Clear();.Text = "parsing error";

}(e.Context == DataGridViewDataErrorContexts.LeaveControl)

{.Show("leave control error");.Clear();.Text = "leave control error";

}((e.Exception) is ConstraintException)

{view = (DataGridView)sender;.Rows[e.RowIndex].ErrorText = "an error";.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "an error";.ThrowException = false;

}

}void учетToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "exec uchet_prov_lech "+ textBox1.Text;.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void учетПлатныхУслугToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "select * from uchet_plat_usl() " ;.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void архивВыписанныхПациентовToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "select * from arhiv_vypisannyx() ";.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void среднееВремяВСтационареToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "select * from prodolg_stac() ";.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{(!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) || e.KeyChar == '.')) e.Handled = true;.ReadOnly = true;

}void helpToolStripMenuItem_Click(object sender, EventArgs e)

{helper = new Form2();.ShowDialog();

}void выставитьСчетПациентуToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "exec oplata " + textBox1.Text;.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void смертностьToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "select * from smerti() ";.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}void операцииОсложненияСмертиToolStripMenuItem_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial Catalog=bolnica;Data Source=Nastya;Initial File Name=");ds = new DataSet(); //объект для вывода информации из БДquery = string.Empty;= "select * from proper_pac() ";.Text = query;dataadapter = new SqlDataAdapter(query, conn);.Fill(ds);.DataSource = ds.Tables[0];.ReadOnly = true;

}

}

}


Содержание Введение Постановка задачи 1. Проектирование базы данных 1.1 Построение концептуальной модели 1.2.1 Документирование атрибутов

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ