Разработка проекта базы данных "Отдел кадров предприятия"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.02.2020
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

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

1.1 Анализ предметной области и выявление необходимого набора сущностей

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

1.3 Определение связей между объектами

1.4 Описание полученной модели на языке инфологического проектирования

2. Построение схемы реляционной базы данных

2.1 Построение набора необходимых отношений базы данных

2.2 Задание первичных и внешних ключей определённых отношений

2.3 Приведение отношений БД к третьей нормальной форме

2.4 Определение ограничений целостности для внешних ключей отношений и для отношений в целом

3. Запись выражений указанных в варианте задания типов запросов на языке SQL

3.1 Процедура добавления товаров на прилавок

3.2 Процедура количество должностей

3.3 Процедура для подсчета информации

3.4 Процедура претендентов

3.5 Процедура полсчета зарплаты

4. Выбор и основание средств разработки приложения

5. Реализация законченного приложения, работающего с созданной базой данных

5.1 Разработка и построение интерфейса главной и рабочих форм

5.2 Построение главного меню и кнопок панели инструментов

5.3 Выполнение программного кода на языке C#

Заключение

Список использованных источников

Приложение

Введение

После анализа поставленной задачи стало необходимо изучить предметную область, в которой решалась задача создания АРМ Отдела Кадров. Для это первым этапом стало изучение и понимание основных принципов построения автоматизированных рабочих мест как таков. Как выяснилось в ходе изучения этой области, проработке интерфейса стоит уделить немалое внимание. Плохо продуманный интерфейс может свети не нет желание работать с программой независимо от примененных аппаратно-программных средств для ее реализации.

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

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

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

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

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

1.1 Анализ предметной области и выявление необходимого набора сущностей

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

По заданию работник отдела кадра контролирует заработную плату, премии и информацию работниках.

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

Таким образом, в ходе анализа предметной области был выделен следующий необходимый набор сущностей:

1. Кадры

2. Должности

3. Зарплата

4. Документация

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

Для построения диаграммы IDEF0 был выбрано программное средство BPwin.

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

Рисунок 1.1 - Контекстная диаграмма процесса отделов кадра (IDEF0)

По результатам разработки контекстной диаграммы выполняется процесс декомпозиции модели (результат представлен на рисунке 1.2).

Произведем детализацию IDEF0-диаграммы (рис.1.2) при помощи DFD (Data Flow Diagram) для более наглядного отображения текущих операций документооборота в системах. Главная цель DFD - показать, как каждая работа преобразует свои входные данные в выходные, а также выявить отношения между этими работами.

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

Рисунок 1.2 - Декомпозиция контекстной диаграммы процесса (IDEF0)

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

Ниже представлены сущности и определенные для них атрибуты, указаны первичные и вторичные ключи (названия вторичных ключей будут соответствовать названию связанной сущности, за исключением базы: под базой будет пониматься помещение с выставленным флагом «база»):

· Системный анализ предметной области

1. База данных содержит:

1. Данные о кадрах;

2. Данные о вакансиях;

3. Данные о контингентов.

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

Структура . Атрибуты работника отдела кадров:

- Название;

- Город;

- Адрес.

- Должности;

- Количество требуемых сотрудников;

- Требования к сотрудникам.

3. Атрибуты сотрудников:

- Фамилия;

- Имя;

- Отчество;

- Дата рождения;

- Паспортные данные;

- Город;

- Адрес;

- Телефон;

- Дополнительная информация.

4. Атрибуты зарплаты

- Кол-во

- Ставка

1.3 Определение связей между объектами

Если кадры и рабочие места могут существовать как обособленные объекты, одно рабочие место может иметь несколько мест, но одно место может принадлежать только одному работнику.

Работник “Отдела кадров” может оформить множество запросов, но один запрос оформляется только одним работником. Притом каждый запрос оформляется между двумя сторонами - работниками (который в случае наличного расчета не указывается) и рабочем местом. Один запрос, оформляется только на 1 рабочие место, место может осуществлять множество запросов. Притом в зависимости от типа категории указывается соответствующий документ - приема или платежное поручение соответственно. Один документ соответствует одного запроса

Прием на работу может содержать множество заявок, но набор имеет критерии.

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

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

1. Кадры - Описание: (1:M).

2. Должность- Описание: (1:М).

3. Документация - Документы и реквизиты: (1:М).

4. Претенденты - Описание: (1:М)

1.4 Описание полученной модели на языке инфологического проектирования

Проектирование базы данных (БД) включает описание отношений между данными, которые накапливаются и обрабатываются информационной системой. Это описание выражается в виде инфологической модели (ИЛМ) предметной области. ИЛМ содержит, в частности, описание объектов и связей между ними, которые могут задаваться диаграммой “сущность-связь” (ER-диаграммой).

2. Построение схемы реляционной базы данных

2.1 Построение набора необходимых отношений базы данных

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

В предыдущем пункте мы создали инфологическую концептуальную модель базы данных «АРМ Отдел кадров», построенной с помощью IDEF1X. На основе полученной концептуальной модели можно определить набор необходимых отношений базы данных. На рисунке 2.1 представлены отношения для базы данных магазина.

Рисунок 2.1 - Набор необходимых отношений базы данных

2.2 Задание первичных и внешних ключей определённых отношений

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

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

Таблица 2.1 - Первичные и внешние ключи отношений

№ п/п

Название таблицы

Первичный ключ

Внешние ключи

1

Flames(Кадры)

IDFlames

-

2

Position (Должность)

IDPosition

FK Flames

3

Surcharge (Доплата)

IDSurcharge

-

4

Applicants1Table (Претенденты 1Таблица)

IDFlames

FKPosition

5

Applicants2Table (Претенденты 2Таблица)

IDFlames

FKFlames

6

Applicants3Table (Претенденты 3Таблица)

IDFlames

FKSurcharge

7

Documents (Договоры)

IDHiredWorker

FKCommodityResearcher

FKSupplier

2.3 Приведение отношений БД к третьей нормальной форме

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

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

Так как все атрибуты наших отношений атомарны, а каждое отношение имеет первичный ключ, то это означает, что отношения базы находятся в первой нормальной форме (1НФ).

Так как зависимости неключевых атрибутов от части составного ключа отсутствуют (все ключи в вышеописанных отношениях несоставные), а отношения базы находятся в 1НФ, то можно утверждать, что отношения базы удовлетворяют требованиям второй нормальной формы (2НФ).

Так как в отношениях базы отсутствуют зависимости неключевых атрибутов от других неключевых атрибутов, а присутствие 2НФ указано выше, можно сказать, что отношения базы находятся в третьей нормальной форме (3НФ).

Таким образом, отношения БД находятся в 3НФ.

2.4 Определение ограничений целостности для внешних ключей отношений и для отношений в целом

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

Таблица 2.2 - Ограничения и триггеры таблиц

№ п/п

Название таблицы

Ограничение с указанием типа

Описание

1

Flames(Кадры)

CHECK Наименование

Кадры

Описание работника.

CHECK Кол-во

Количество работников не должно быть < 0;

2

Position (Должность)

CHECK Наименование

Должность

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

CHECK Кол-во

Количество не должно быть < 0;

TRIGGER

FLAMES_INSERT_UPDATE

При добавлении триггер устанавливает наценку.

3

Surcharge (Доплата)

CHECK Доплата

Наименование должно содержать хотя бы 1 символ.

4

Applicants 1Table (Претенденты 1Таблица)

CHECK Наименование

Доплата

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

CHECK Кол-во

Количество не должно быть < 0;

5

Applicants2Table (Претенденты 2Таблица)

CHECK Наименование

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

CHECK Кол-во

Количество не должно быть < 0;

6

Applicants3Table (Претенденты 3Таблица)

CHECK Наименование

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

CHECK Кол-во

Количество не должно быть < 0;

№ п/п

Название таблицы

Ограничение с указанием типа

Описание

7

Documents (Договоры)

CHECK ФИО

ФИО должно содержать хотя бы 1 символ.

CHECK Дата

Дата не должна быть пустой

2 Создание спроектированной базы данных

Для реализации спроектированной базы данных была выбрана система управления базами данных MS SQL Server 2017. Это обусловлено тем, что, во-первых, данная СУБД получилась широкое распространение, а во-вторых, имеются свободно распространяемые сборки, а в-третьих, Microsoft и другие компании производят большое число программных средств разработки, позволяющих разрабатывать бизнес-приложения с использованием баз данных Microsoft SQL Server.

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

Таблица Flames (Кадры) содержит основные сведения о работниках . Её структура приведена в таблице 3.1.

Таблица 3.1 - Характеристика атрибутов таблицы Flames (Кадры)

Имя атрибута

Тип

NULL

Описание

idFlames

int

-

Первичный ключ.

ФИО

nvarchar(50)

-

Внешний ключ.

Дата рождения

int

-

Определяет дату рождения

Образование

nvarchar(50)

-

Образование

Дата принятие на работу

int

-

Принятие на работу

Таблица Position (Должность) содержит информациюо всех должностях. Приведен в таблице 3.2.

Таблица 3.2 - Характеристика атрибутов таблицы Position (Должность)

Имя атрибута

Тип

NULL

Описание

idFlames

int

-

Первичный ключ.

Название

nvarchar(50)

-

Внешний ключ.

Оклад

nvarchar(50)

-

Указывает зарплату работников

Таблица Surcharge (Доплата) определяет заслуги работников. Её структура приведена в таблице 3.3.

Таблица 3.3 - Характеристика атрибутов таблицы Surcharge (Доплата)

Имя атрибута

Тип

NULL

Описание

idSurcharge

nvarchar(50)

-

Первичный ключ.

Имя атрибута

Тип

NULL

Описание

Название

nvarchar(50)

-

Название надбавки.

Надбавка

nvarchar(50)

-

Уникальное поле.

Таблица Applicants1Table (Претенденты1Таблица) содержит информацию об поставщике. Приведена в таблице 3.4.

Таблица 3.4 - Характеристика атрибутов таблицы Претенденты1Таблица

Имя атрибута

Тип

NULL

Описание

idПреденденты

nvarchar(50)

-

Первичный ключ.

ФИО

nvarchar(50)

-

Внешний ключ.

Образование

nvarchar(50)

-

Указывает образование

Дата рождения

int

-

Дата

Адрес

int

-

Адрес проживание

Телефон

Int

-

Телефое работника

Таблица Applicants2Table (Претенденты2Таблица) содержит информацию об поставщике. Приведена в таблице 3.5.

Таблица 3.5 - Характеристика атрибутов таблицы Претенденты2Таблица

Имя атрибута

Тип

NULL

Описание

idПреденденты

nvarchar(50)

-

Первичный ключ.

ФИО

nvarchar(50)

-

Внешний ключ.

Образование

nvarchar(50)

-

Указывает образование

Дата рождения

int

-

Дата

Адрес

int

-

Адрес проживание

Таблица Applicants3Table (Претенденты3Таблица) содержит информацию об поставщике. Приведена в таблице 3.6.

Таблица 3.6 - Характеристика атрибутов таблицы (Претенденты3Таблица)

Имя атрибута

Тип

NULL

Описание

idПреденденты

nvarchar(50)

-

Первичный ключ.

ФИО

nvarchar(50)

-

Внешний ключ.

Образование

nvarchar(50)

-

Указывает образование

Дата рождения

int

-

Дата

Адрес

int

-

Адрес проживание

Телефон

int

-

Телефое работника

3. Запись выражений указанных в варианте задания типов запросов на языке SQL

3.1 Процедура добавления товаров на прилавок

CRETE PROCEDURE [dbo].[Flames_Insert_Goods]

AS

INSERT INTO Salary (Salary_price, Зарплата, Цена, Претенденты)

Процедура для подсчета надбавки:

CREATE TABLE [dbo].[Doplata] (

[id_doplata] INT IDENTITY (1, 1) NOT NULL,

[name] NVARCHAR (MAX) NOT NULL,

[nadbavka] FLOAT (53) NOT NULL,

PRIMARY KEY CLUSTERED ([id_doplata] ASC)

Рисунок 4.2 - Количество доплаты.

3.2 Процедура количество должностей

CREATE TABLE [dbo].[Dolzhnost] (

[id_dolzhnost] INT IDENTITY (1, 1) NOT NULL,

[name] NVARCHAR (MAX) NOT NULL,

[oklad] FLOAT (53) NOT NULL,

PRIMARY KEY CLUSTERED ([id_dolzhnost] ASC)

);

Рисунок 4.3 - Количество должностей .

3.3 Процедура для подсчета информации

CREATE TABLE [dbo].[Kadri] (

[id_kadr] INT IDENTITY (1, 1) NOT NULL,

[familiya] NVARCHAR (MAX) NOT NULL,

[name] NVARCHAR (MAX) NOT NULL,

[otchestvo] NVARCHAR (MAX) NOT NULL,

[date_born] DATE NOT NULL,

[obrazovanie] NVARCHAR (MAX) NOT NULL,

[dateacceptwork] DATE NOT NULL,

[id_dolzhnost_kadr] INT NULL,

PRIMARY KEY CLUSTERED ([id_kadr] ASC),

CONSTRAINT [LEARN] FOREIGN KEY ([id_dolzhnost_kadr]) REFERENCES [dbo].[Dolzhnost] ([id_dolzhnost]) ON DELETE CASCADE ON UPDATE CASCADE

);

Рисунок 4.4 - информация

3.4 Процедура претендентов

CREATE TABLE [dbo].[Pretendent] (

[id_pretendent] INT IDENTITY (1, 1) NOT NULL,

[fio] NVARCHAR (MAX) NOT NULL,

[obrazovanie] NVARCHAR (MAX) NOT NULL,

[date_born] DATE NOT NULL,

[adres] NVARCHAR (MAX) NOT NULL,

[telefon] NVARCHAR (50) NOT NULL,

[id_dolzhnost_pret] INT NULL,

PRIMARY KEY CLUSTERED ([id_pretendent] ASC),

CONSTRAINT [LEARNMORE] FOREIGN KEY ([id_dolzhnost_pret]) REFERENCES [dbo].[Dolzhnost] ([id_dolzhnost]) ON DELETE CASCADE ON UPDATE CASCADE

);

Рисунок 4.5 - прентенденты.

3.5 Процедура полсчета зарплаты

CREATE TABLE [dbo].[Zarplata] (

[id_kadr_zp] INT NOT NULL,

[id_dolzhnost_zp] INT NOT NULL,

[id_doplata_zp] INT NOT NULL,

[premiya] FLOAT (53) NOT NULL,

[zarplata] FLOAT (53) NOT NULL,

CONSTRAINT [VS] PRIMARY KEY CLUSTERED ([id_kadr_zp] ASC, [id_dolzhnost_zp] ASC, [id_doplata_zp] ASC),

CONSTRAINT [KEK] FOREIGN KEY ([id_kadr_zp]) REFERENCES [dbo].[Kadri] ([id_kadr]),

CONSTRAINT [KAK] FOREIGN KEY ([id_doplata_zp]) REFERENCES [dbo].[Doplata] ([id_doplata]) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT [KIK] FOREIGN KEY ([id_dolzhnost_zp]) REFERENCES [dbo].[Dolzhnost] ([id_dolzhnost]) ON DELETE CASCADE ON UPDATE CASCADE

);

Рисунок 4.6 - Зарплата

4. Выбор и основание средств разработки приложения

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

· удобство и простота использования;

· качество средств разработки, защиты и контроля базы данных;

· уровень коммуникационных средств в случае применения ее в сетях;

· фирма-разработчик;

· стоимость.

Система SQL Server 2017 позволяет обращаться к данным из любого приложения, разработанного с применением технологий Microsoft .NET и Visual Studio. SQL Server обеспечивает высочайший уровень безопасности, надежности и масштабируемости для критически важных приложений. Чтобы использовать новые возможности, постоянно возникающие в быстро меняющемся деловом мире, предприятиям нужно быть способными быстро создавать и развертывать решения, управляемые данными. SQL Server 2008 позволяет сократить затраты времени и средств, требуемые на управление и развертывание таких приложений. Также следует учесть, что фирма-разработчик данной СУБД является также разработчиком самой распространенной ОС. В финансовом плане важным фактором является то, что существуют бесплатные сборки данной СУБД (Express).

Для реализации приложения была выбрана среда разработки Microsoft Visual Studio 2019, в качестве языка программирования - C#.

Достоинства платформы .NET [1]:

1) Вся платформа .NET основана на единой объектно-ориентированной модели. Все сервисы, интерфейсы и объекты, которые платформа предоставляет разработчику объединены в единую иерархию классов. Другими словами, все, что может вам потребоваться при создании приложений под платформу .NET будет всегда у вас под рукой. Причем, все это сгруппировано очень удобно и интуитивно понятно.

2) Приложение, написанное на любом .NET-совместимом языке является межплатформенным (в идеале). Почему в идеале? Дело в том, что приложение, написанное, скажем, на том же C#, не зависит от платформы, на которой будет выполняться, но зато зависит от наличия платформы .NET.

3) В состав платформы .NET входит "сборщик мусора", который освобождает ресурсы. Таким образом, приложения защищены от утечки памяти и от необходимости освобождать ресурсы. Это делает программирование более легким и более безопасным.

6) Приложения .NET используют безопасные типы, что повышает их надежность и совместимость.

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

8) Абсолютно все ошибки обрабатываются механизмом исключительных ситуаций. Это позволяет избежать разногласий, которые иногда возникают при программировании под Win32.

9) Повторное использование кода стало еще удобнее. Это связано с тем, что промежуточный язык MSIL не зависит от языка программирования. Например, вы можете написать программу на C#, а патч к ней писать уже, скажем, на J#.

5. Реализация законченного приложения, работающего с созданной базой данных

5.1 Разработка и построение интерфейса главной и рабочих форм

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

Рисунок 6.1 - Окно авторизации приложения

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

Основные формы приложения построены в основном на компоненте DataGridView. Данный компонент позволяет представлять данные в удобной табличной форме с использованием дополнительных собственных расширений.

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

Рисунок 6.2 - Основная форма

Для упрощения восприятия были выбраны не яркие цвета. При нажатии на кнопку откроется список категорий, которые есть в базе. Помимо самой таблицы на форме присутствует панель управления БД. Рисунок 6.3

Рисунок 6.3 - Склад

Форма предоставляет возможность редактирования, удаления, а так же отправки экспорт Exsel. Рисунок 6.4

Рисунок 6.4 - Добавления

Прежде чем добавить работника нам нужно указать его данные . Предусмотрена отдельная форма в которой мы можем вырать нужного нам работника . Рисунок 6.5

Рисунок 6.5 - Изменение

5.2 Построение главного меню и кнопок панели инструментов

Меню реализовано с помощью контейнера panel, представляющего систему меню для формы. Таким образом, данный класс позволил нам разделить весь функционал по следующим категориям:

1. «Кадры», где происходит просмотр, добавление, удаление и редактирование данных.

2. «Претенденты», где происходит просмотр, добавление, удаление и редактирование данных.

3. «Конструктор запросов», где происходит построение, запросов которое упрощает выборку данных.

5.3 Выполнение программного кода на языке C#

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

string Loggi = @"Log.txt";

string NameElem = @"nametext.txt";

if (comboBox1.Text == "Системный Администратор")

{

SqlDataAdapter sda = new SqlDataAdapter("Select Count(*) From DataSaveAccauntAdmin Where Name='" + textBox1.Text + "' and Password = '" + textBox2.Text + "'", conn);

DataTable dt = new DataTable();

sda.Fill(dt);

if (dt.Rows[0][0].ToString() == "1")

{

MessageBox.Show("Вы вошли как системный администратор.");

AdminPanel open = new AdminPanel();

open.Show();

}

else

{

MessageBox.Show("Пожалуйста, проверьте правильность введенных данных!"); идентифицирующий база данный интерфейс

}

using (StreamWriter sw = new StreamWriter(Loggi, true, Encoding.Default))

{

sw.WriteLine("Попытка входа системного администратора ==> " + DateTime.Now);

}

}

if (comboBox1.Text == "Товаровед")

{

SqlDataAdapter sda2 = new SqlDataAdapter("Select Count(*) From DataSaveAccount Where Код='" + textBox1.Text + "' and Пароль = '" + textBox2.Text + "'", conn);

DataTable dt2 = new DataTable();

sda2.Fill(dt2);

if (dt2.Rows[0][0].ToString() == "1")

{

АРМОтделКадров openForm = new АРМОтделКадров ();

openForm.Show();

}

else

{

MessageBox.Show("Пожалуйста, проверьте правильность введенных данных!");

}

using (StreamWriter sw = new StreamWriter(Loggi, true, Encoding.Default))

{

sw.WriteLine("Попытка входа товароведа ==> " + DateTime.Now);

}

using (StreamWriter sw = new StreamWriter(NameElem, false, Encoding.Default))

{

sw.Write(textBox1.Text);

Заключение

Разработанная в ходе выполнения курсового проекта база данных «Отдел кадров предприятия», является актуальной на сегодняшний день и имеет большую практическую значимость. Она упрощает работу пользователя и позволяет более наглядно представлять хранимые данные.

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

Список использованных источников

1. Конноли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. -- М.: Вильямс, 2000. -- 1120 с.

2. Хансен Г., Хансен Дж. Базы данных: разработка и управление. -- М.: БИНОМ, 1999. -- 704 с.

3. Дейт К. Дж. Введение в системы баз данных. -- К.; М.; СПб.: Издательский дом «Вильямс», 1999. -- 848 с.

4. Праг К. Н., Ирвин М. Р. Access 2000. Библия пользователя. -- М.: Вильямс, 2000. -- 1040 с.

5. Microsoft Access 2003. Русская версия. Шаг за шагом. - М.: ЭКОМ, 2006

6. Симонович С.В., Евсеев Г.А., Алексеев А.Г. Специальная информатика. Учебное пособие. - М.: АСТ-Пресс, 1998.- 480 с.

7. Гончаров А.Ю. - Access 2003. Самоучитель с примерами. www.natahaus.ru

Приложение

ЛИСТИНГ ПРОГРАММНОГО КОДА

Листинг A.1 - Осуществление серии запросов по выводу информации и удалению редактированию и т.д.

using System;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.IO;

using System.Reflection;

using System.Text;

using ExcelObj = Microsoft.Office.Interop.Excel;

using System.Windows.Forms;

namespace OtdelKadrov

{

public partial class Main : Form

{

public Main()

{

InitializeComponent();

//comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

}

public void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

if (comboBox1.SelectedIndex == 0)

{

checkBox1.Visible = true;

checkBox2.Visible = true;

checkBox3.Visible = true;

checkBox4.Visible = true;

checkBox5.Visible = true;

checkBox6.Visible = true;

}

else

{

checkBox1.Visible = false;

checkBox2.Visible = false;

checkBox3.Visible = false;

checkBox4.Visible = false;

checkBox5.Visible = false;

checkBox6.Visible = false;

}

if (comboBox1.SelectedIndex == 0)

{

button3.Visible = true;

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_kadr, familiya, name, otchestvo, date_born, obrazovanie, dateacceptwork, id_dolzhnost_kadr " +

"FROM Kadri", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Kadri");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Фамилия";

dataGridView1.Columns[2].HeaderText = "Имя";

dataGridView1.Columns[3].HeaderText = "Отчество";

dataGridView1.Columns[4].HeaderText = "Дата рождения";

dataGridView1.Columns[5].HeaderText = "Образование";

dataGridView1.Columns[6].HeaderText = "Дата принятия на работу";

dataGridView1.Columns[7].Visible = false;

/// checkboxs

connect.Close();

}

if (comboBox1.SelectedIndex == 1)

{

checkBox7.Visible = true;

checkBox8.Visible = true;

}

else

{

checkBox7.Visible = false;

checkBox8.Visible = false;

}

if (comboBox1.SelectedIndex == 1)

{

// Vision

button3.Visible = true;

//

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_dolzhnost, name, oklad FROM Dolzhnost", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Dolzhnost");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Название";

dataGridView1.Columns[2].HeaderText = "Оклад";

connect.Close();

}

if (comboBox1.SelectedIndex == 2)

{

checkBox9.Visible = true;

checkBox10.Visible = true;

}

else

{

checkBox9.Visible = false;

checkBox10.Visible = false;

}

if (comboBox1.SelectedIndex == 2)

{

// Vision

button3.Visible = true;

//

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_doplata, name, nadbavka FROM Doplata", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Doplata");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Название";

dataGridView1.Columns[2].HeaderText = "Надбавка";

connect.Close();

}

if (comboBox1.SelectedIndex == 3)

{

checkBox11.Visible = true;

checkBox12.Visible = true;

checkBox13.Visible = true;

checkBox14.Visible = true;

checkBox15.Visible = true;

checkBox16.Visible = true;

checkBox17.Visible = true;

checkBox18.Visible = true;

checkBox19.Visible = true;

}

else

{

checkBox11.Visible = false;

checkBox12.Visible = false;

checkBox13.Visible = false;

checkBox14.Visible = false;

checkBox15.Visible = false;

checkBox16.Visible = false;

checkBox17.Visible = false;

checkBox18.Visible = false;

checkBox19.Visible = false;

}

if (comboBox1.SelectedIndex == 3)

{

// Vision

button3.Visible = false;

//

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_kadr_zp, Kadri.familiya, Kadri.name, Kadri.otchestvo, Dolzhnost.name, Dolzhnost.oklad, Doplata.name, Doplata.nadbavka, premiya, zarplata FROM Zarplata, Kadri, Doplata, Dolzhnost " +

"WHERE Dolzhnost.id_dolzhnost = Zarplata.id_dolzhnost_zp AND " +

"Doplata.id_doplata = Zarplata.id_doplata_zp AND " +

"Kadri.id_kadr = Zarplata.id_kadr_zp", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Zarplata, Dolzhnost, Doplata, Kadri");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Фамилия";

dataGridView1.Columns[2].HeaderText = "Имя";

dataGridView1.Columns[3].HeaderText = "Отчество";

dataGridView1.Columns[4].HeaderText = "Должность";

dataGridView1.Columns[5].HeaderText = "Оклад";

dataGridView1.Columns[6].HeaderText = "Название доплаты/надбавки";

dataGridView1.Columns[7].HeaderText = "Надбавка/Доплата";

dataGridView1.Columns[8].HeaderText = "Премия";

dataGridView1.Columns[9].HeaderText = "Зарплата";

connect.Close();

}

if (comboBox1.SelectedIndex == 4)

{

checkBox20.Visible = true;

checkBox21.Visible = true;

checkBox22.Visible = true;

checkBox23.Visible = true;

checkBox24.Visible = true;

}

else

{

checkBox20.Visible = false;

checkBox21.Visible = false;

checkBox22.Visible = false;

checkBox23.Visible = false;

checkBox24.Visible = false;

}

if (comboBox1.SelectedIndex == 4)

{

// Vision

button3.Visible = true;

//

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_pretendent, fio, obrazovanie, date_born, adres, telefon, id_dolzhnost_pret FROM Pretendent", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Pretendent");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "ФИО";

dataGridView1.Columns[2].HeaderText = "Образование";

dataGridView1.Columns[3].HeaderText = "Дата рождения";

dataGridView1.Columns[4].HeaderText = "Адрес";

dataGridView1.Columns[5].HeaderText = "Телефон";

dataGridView1.Columns[6].Visible = false;

connect.Close();

}

}

private void button1_Click(object sender, EventArgs e) //////////////////////////////// INSERT //////////////////////////////////////

{

if (comboBox1.SelectedIndex == 0)

{

addKadri ak = new addKadri(this);

ak.Show();

}

if (comboBox1.SelectedIndex == 1)

{

addDolzhnost ad = new addDolzhnost(this);

ad.Show();

}

if (comboBox1.SelectedIndex == 2)

{

addDoplata ad = new addDoplata(this);

ad.Show();

}

if (comboBox1.SelectedIndex == 3)

{

addZarplata az = new addZarplata(this);

az.Show();

}

if (comboBox1.SelectedIndex == 4)

{

addPretendent ap = new addPretendent(this);

ap.Show();

}

}

private void button2_Click(object sender, EventArgs e) ///////////////////////////////// DELETE ///////////////////////////////////////////

{

if (comboBox1.SelectedIndex == 0)

{

if (dataGridView1.CurrentCell != null)

{

try

{

string delkadr = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

string upsql = "DELETE FROM Kadri WHERE id_kadr = @id";

SqlCommand commandUP = new SqlCommand(upsql, connect);

connect.Open();

commandUP.Parameters.AddWithValue("id", delkadr);

commandUP.ExecuteNonQuery();

connect.Close();

}

catch

{

MessageBox.Show(

"Нельзя удалить! Сначала удалите из таблицы 'Зарплата'.",

"Сообщение",

MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

}

}

if (comboBox1.SelectedIndex == 1)

{

if (dataGridView1.CurrentCell != null)

{

string deldolzh = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

string upsql = "DELETE FROM Dolzhnost WHERE id_dolzhnost = @id";

SqlCommand commandUP = new SqlCommand(upsql, connect);

connect.Open();

commandUP.Parameters.AddWithValue("id", deldolzh);

commandUP.ExecuteNonQuery();

connect.Close();

}

}

if (comboBox1.SelectedIndex == 2)

{

if (dataGridView1.CurrentCell != null)

{

string deldopl = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

string upsql = "DELETE FROM Doplata WHERE id_doplata = @id";

SqlCommand commandUP = new SqlCommand(upsql, connect);

connect.Open();

commandUP.Parameters.AddWithValue("id", deldopl);

commandUP.ExecuteNonQuery();

connect.Close();

}

}

if (comboBox1.SelectedIndex == 3)

{

if (dataGridView1.CurrentCell != null)

{

string delzp = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

string upsql = "DELETE FROM Zarplata WHERE id_kadr_zp = @id";

SqlCommand commandUP = new SqlCommand(upsql, connect);

connect.Open();

commandUP.Parameters.AddWithValue("id", delzp);

commandUP.ExecuteNonQuery();

connect.Close();

}

}

if (comboBox1.SelectedIndex == 4)

{

if (dataGridView1.CurrentCell != null)

{

string delpre = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

string upsql = "DELETE FROM Pretendent WHERE id_pretendent = @id";

SqlCommand commandUP = new SqlCommand(upsql, connect);

connect.Open();

commandUP.Parameters.AddWithValue("id", delpre);

commandUP.ExecuteNonQuery();

connect.Close();

}

}

comboBox1_SelectedIndexChanged(null, null);

}

private void Main_Load(object sender, EventArgs e)

{

}

private void textBox1_TextChanged(object sender, EventArgs e) //////////////////// ПОИСК //////////////////////////////

{

if (comboBox1.SelectedIndex == 0)

{

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_kadr, familiya, name, otchestvo, date_born, obrazovanie, dateacceptwork, id_dolzhnost_kadr " +

"FROM Kadri WHERE familiya LIKE N'%"+textBox1.Text+"%' OR" +

" name LIKE N'%"+textBox1.Text+"%' OR" +

" otchestvo LIKE N'%"+textBox1.Text+"%' OR" +

" date_born LIKE N'%"+textBox1.Text.ToString()+"%' OR" +

" obrazovanie LIKE N'%"+textBox1.Text+"%' OR" +

" dateacceptwork LIKE N'%"+textBox1.Text+"%'", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Kadri");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Фамилия";

dataGridView1.Columns[2].HeaderText = "Имя";

dataGridView1.Columns[3].HeaderText = "Отчество";

dataGridView1.Columns[4].HeaderText = "Дата рождения";

dataGridView1.Columns[5].HeaderText = "Образование";

dataGridView1.Columns[6].HeaderText = "Дата принятия на работу";

dataGridView1.Columns[7].Visible = false;

connect.Close();

}

if (comboBox1.SelectedIndex == 1)

{

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_dolzhnost, name, oklad FROM Dolzhnost " +

"WHERE name LIKE N'%"+textBox1.Text+"%' OR" +

" oklad LIKE N'%"+textBox1.Text+"%'", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Dolzhnost");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Название";

dataGridView1.Columns[2].HeaderText = "Оклад";

connect.Close();

}

if (comboBox1.SelectedIndex == 2)

{

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_doplata, name, nadbavka FROM Doplata " +

"WHERE name LIKE N'%"+textBox1.Text+"%' OR" +

" nadbavka LIKE N'%"+textBox1.Text+"%'", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Doplata");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Название";

dataGridView1.Columns[2].HeaderText = "Надбавка";

connect.Close();

}

if (comboBox1.SelectedIndex == 3)

{

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_kadr_zp, Kadri.familiya, Kadri.name, Kadri.otchestvo, Dolzhnost.name, Dolzhnost.oklad, Doplata.name, Doplata.nadbavka, premiya, zarplata FROM Zarplata, Kadri, Doplata, Dolzhnost " +

"WHERE Dolzhnost.id_dolzhnost = Zarplata.id_dolzhnost_zp AND " +

"Doplata.id_doplata = Zarplata.id_doplata_zp AND " +

"Kadri.id_kadr = Zarplata.id_kadr_zp AND " +

"(Kadri.familiya LIKE N'%"+textBox1.Text+"%' OR " +

"Kadri.name LIKE N'%" + textBox1.Text + "%' OR " +

"Kadri.otchestvo LIKE N'%" + textBox1.Text + "%' OR " +

"Dolzhnost.name LIKE N'%" + textBox1.Text + "%' OR " +

"Dolzhnost.oklad LIKE N'%" + textBox1.Text + "%' OR " +

"Doplata.name LIKE N'%" + textBox1.Text + "%' OR " +

"Doplata.nadbavka LIKE N'%" + textBox1.Text + "%' OR " +

"premiya LIKE N'%" + textBox1.Text + "%' OR " +

"zarplata LIKE N'%" + textBox1.Text + "%')", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Zarplata, Dolzhnost, Doplata, Kadri");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "Фамилия";

dataGridView1.Columns[2].HeaderText = "Имя";

dataGridView1.Columns[3].HeaderText = "Отчество";

dataGridView1.Columns[4].HeaderText = "Должность";

dataGridView1.Columns[5].HeaderText = "Оклад";

dataGridView1.Columns[6].HeaderText = "Название доплаты/надбавки";

dataGridView1.Columns[7].HeaderText = "Надбавка/Доплата";

dataGridView1.Columns[8].HeaderText = "Премия";

dataGridView1.Columns[9].HeaderText = "Зарплата";

connect.Close();

}

if (comboBox1.SelectedIndex == 4)

{

// Vision

//

string sPath = Path.Combine(Application.StartupPath, "DatabaseOtdelKadrov.mdf");

SqlConnection connect = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+sPath+";Integrated Security=True");

connect.Open();

SqlDataAdapter da = new SqlDataAdapter("SELECT id_pretendent, fio, obrazovanie, date_born, adres, telefon, id_dolzhnost_pret FROM Pretendent" +

" WHERE fio LIKE N'%" + textBox1.Text + "%' OR " +

"obrazovanie LIKE N'%" + textBox1.Text + "%' OR " +

"date_born LIKE N'%" + textBox1.Text + "%' OR " +

"adres LIKE N'%" + textBox1.Text + "%' OR " +

"telefon LIKE N'%" + textBox1.Text + "%'", connect);

SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "Pretendent");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].HeaderText = "ФИО";

dataGridView1.Columns[2].HeaderText = "Образование";

dataGridView1.Columns[3].HeaderText = "Дата рождения";

dataGridView1.Columns[4].HeaderText = "Адрес";

dataGridView1.Columns[5].HeaderText = "Телефон";

dataGridView1.Columns[6].Visible = false;

connect.Close();

}

}

private void button3_Click(object sender, EventArgs e)

{

if (dataGridView1.CurrentCell != null)

if (comboBox1.SelectedIndex == 0)

{

changeKadri ck = new changeKadri(this);

ck.label1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

ck.textBox1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();

ck.textBox2.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString();

ck.textBox3.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[3].Value.ToString();

ck.dateTimePicker1.Value = (DateTime)dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[4].Value;

ck.textBox4.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[5].Value.ToString();

ck.dateTimePicker2.Value = (DateTime)dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[6].Value;

ck.Show(this);

}

if (dataGridView1.CurrentCell != null)

if (comboBox1.SelectedIndex == 1)

{

changeDolzhnost cd = new changeDolzhnost(this);

cd.Show(this);

cd.label1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

cd.textBox1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();

cd.textBox2.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString();

}

if (dataGridView1.CurrentCell != null)

if (comboBox1.SelectedIndex == 2)

{

changeDoplata cdoplata = new changeDoplata(this);

cdoplata.Show();

cdoplata.label1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

cdoplata.textBox1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();

cdoplata.textBox2.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString();

}

if (comboBox1.SelectedIndex == 3)

{

button3.Visible = false;

}

if (dataGridView1.CurrentCell != null)

if(comboBox1.SelectedIndex == 4)

{

changePretendent cp = new changePretendent(this);

cp.Show();

cp.label1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();

cp.textBox1.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();

cp.textBox2.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString();

cp.dateTimePicker1.Value = (DateTime)dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[3].Value;

cp.textBox3.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[4].Value.ToString();

cp.textBox4.Text = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[5].Value.ToString();

}

}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

{

}

private void button4_Click(object sender, Even...


Подобные документы

  • Обоснование требуемого набора атрибутов для каждой сущности. Описание полученной модели на языке инфологического проектирования. Графическое представление связей между внешними и первичными ключами. Разработка и построение интерфейса главной формы.

    курсовая работа [2,0 M], добавлен 08.01.2015

  • Требования, предъявляемые к базе данных "Публикации в СМИ". Выбор инструментальных средств для разработки. Проектирование базы данных: выявление необходимого набора сущностей, обоснование требуемого набора атрибутов, определение связей между объектами.

    курсовая работа [1,2 M], добавлен 18.04.2014

  • Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.

    курсовая работа [5,1 M], добавлен 13.12.2011

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

    курсовая работа [877,8 K], добавлен 28.05.2012

  • Проектирование модели базы данных с помощью Erwin: выделение сущностей предметной области и их атрибутов. Разработка SQL-скрипта, предназначенного для генерации базы данных в формате MS SQL Server 2005. Создание процедур и написание проверочных кодов.

    контрольная работа [1,1 M], добавлен 31.03.2012

  • Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.

    курсовая работа [1,4 M], добавлен 14.01.2018

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

    курсовая работа [624,5 K], добавлен 30.05.2019

  • Создание базы данных, где будет храниться, обрабатываться вся необходимая информация. Построение с помощью CASE-средства Microsoft Visio концептуальной модели, дающая возможность отображения всех выделенных сущностей, их атрибутов и связи между ними/

    курсовая работа [514,4 K], добавлен 29.11.2008

  • Разработка проекта по созданию базы данных для автоматизации коммерческой деятельности ТЦ Гипермаркет. Исследование заданной предметной области и выбор наиболее существенных атрибутов. Построение концептуальной инфологической модели предметной области.

    курсовая работа [889,4 K], добавлен 04.04.2011

  • Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.

    курсовая работа [3,8 M], добавлен 02.02.2014

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

    контрольная работа [784,2 K], добавлен 10.04.2014

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

    курсовая работа [1,5 M], добавлен 31.03.2015

  • Анализ и описание данных, метода нормальных форм, нормализации отношений. Определение зависимостей атрибутов отношения. Создание и общая характеристика, внутренняя структура проектируемой базы данных, требования к ней. Разработка руководства оператора.

    курсовая работа [2,6 M], добавлен 16.06.2014

  • Построение концептуальной модели, процесс моделирования смыслового наполнения базы данных. Основные компоненты концептуальной модели. Построение реляционной модели. Целостность данных в реляционной базе. Нормализация. Проектирование базы данных в ACCESS.

    курсовая работа [1,8 M], добавлен 29.10.2008

  • Семантическое моделирование данных. Основные понятия модели Entity-Relationship. Построение инфологической модели в виде диаграммы "Таблица-связь". Проектирование физической модели базы данных. Разработка формы заставки, главной, вторичных кнопочных форм.

    курсовая работа [1,5 M], добавлен 26.06.2012

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

    контрольная работа [85,8 K], добавлен 12.03.2013

  • Разработка информационной и инфологической модели базы данных на тему "Командировка". Выбор модели данных и составление ее концептуальной схемы. Получение доступа к БД средствами Delphi, разработка пользовательского интерфейса. Реализация SQL-запросов.

    реферат [1,2 M], добавлен 16.06.2009

  • Ограничения, присутствующие в предметной области. Проектирование инфологической модели данных. Описание основных сущностей и их атрибутов. Логический и физический уровни модели данных. Реализация базы данных: представления, триггеры, хранимые процедуры.

    курсовая работа [1,7 M], добавлен 10.02.2013

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

    курсовая работа [2,1 M], добавлен 15.06.2014

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

    курсовая работа [658,1 K], добавлен 03.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.