Реферат

Реферат База данных интернет-провайдеров

Работа добавлена на сайт bumli.ru: 2015-10-28




41



Содержание

ВВЕДЕНИЕ 5

2 Описание предметной области 6

3 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 8

4 Организация выборки информации из базы данных 14

5 Разработка представлений для отображения результатов выборки 19

6 Проектирование хранимых процедур 21

END 22

22

7 Разработка механизмов управления данными в базе при помощи
триггеров 23

7.1 Триггер для добавления данных 23

1. Триггер для вставки и обновления данных в таблице Providers, не допускающий повторения названий провайдеров 23

7.2 Триггер для удаления данных 25

Триггер для каскадного удаления данных из таблицы Affiliates при удалении записи из таблицы Providers 25

8.1 Выбор пользователей базы данных 28

8.2 Выбор пользователей базы данных 28

9 Организация обмена данными между серверной частью и клиентским приложением 28

10 Организация обмена данными между серверной частью и клиентским приложением 29

Для работы приложений требуется следующее программное обеспечение: операционной системе Windows 2000/XP/Vista c установленным .Net Framwork 2.0. Аппаратные требования данного продукта совпадают с аппаратными требованиями операционной системы, для которых он предназначен. 31

13 Инструкция по эксплуатации базы данных и клиентского приложения 32

ЗАКЛЮЧЕНИЕ 33

ПРИЛОЖЕНИЕ 1 35

Экранные формы приложения 35

ПРИЛОЖЕНИЕ 2 38

Листинг программы 38

ВВЕДЕНИЕ


Приложение «Providers» было разработано по заказу ставропольского филиала организации «StavropololoProvider», которое предоставляет услуги связи. Данное приложение разработано для мониторинга конкуренции на рынке интернет-провайдеров. База данных занимает одно из главенствующих мест в системе учета и контроля данного предприятия и требует особо внимания к своей работоспособности, при ее разработке учитывались мнение, как начальников данной организации, так и простых операторов ПК, непосредственно работающих с базой данных. Данное приложение использует технологии .Net Framework 2.0 в алгоритмически-логическом аспекте приложения. В качестве хранилища данных была использована реляционная база, управляемая языком SQL, из наличия использованных средств следует, что данное приложение будет использовано на операционных системах семейства Windows.

2 Описание предметной области


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

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

Кроме доступа в интернет, провайдеры могут предоставля дополнительные услуги, такие как IP-телевидение, электронная почта и т.д.

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

2.3 Описание выходных документов и сообщений

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

  1. Ограничения, связанные с типом данных полей.

  2. Максимальные длины строковых данных: названия регионов, организаций, тарифных планов и технологий – 50 символов, адреса – 100 символов, номера телефонов – 12 символов.

  3. Ограничение связанное с форматом e-mail.

  4. Названия организаций должны быть уникальными.

3 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ


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

При концептуальном проектировании были выбраны основные сущности:

1) «провайдер»;

2) «филиал»;

3) «услуга»;

4) «тариф»;

5) «технология»;

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

1) сущность «провайдер»

Id

Название

Адрес

Телефон

Веб-сайт

E-mail

2) сущность «филиал»

Id

Название

Количество пользователей

Адрес

Телефон

Веб-сайт

E-mail

Провайдер

Регион

Дата открытия

3) сущность «услуга»

Id

Название

4) сущность «тариф»

Id

Название

Скорость

Месячная плата

Цена за мегабайт

Цена за час

Технология

Филиал

5) сущность «технология»

Id

Название

Максимальная скорость

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

6) сущность «регион»

Id

Название

Население
3.1.2 Описание связей
Классификация связей приведена в таблице 2.1

Таблица 2.1 «Классификация связей»

Номер связи

Родительская сущность

Дочерняя сущность

Тип связи

1

Провайдер

Филиал

1:М

2

Филиал

Тариф

1:М

3

Филиал

Услуги Филиалов

1:М

4

Регион

Филиал

1:М

5

Услуги

Услуги Филиалов

1:М

6

Технология

Тариф

1:М

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

3.1.3 ER-диаграмма



Рисунок 3.1 ER-диаграмма
3.2 Даталогическая модель

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

Таблица 2.2– состав таблицы Providers

Имя

Функциональные зависимости

id



Name

Address

Phone

Website

Email

Таблица 2.3– состав таблицы Affiliates

Имя

Функциональные зависимости

id



Name

Users

Address

Phone

Website

Email

Provider_id

Region_id

Opening_date

Таблица 2.4 – состав таблицы Tariffs

Имя

Функциональные зависимости

id



Name

Speed

MonthFee

TrafficPrice

HourPrice

Technology_id

Affiliate_id

Таблица 2.5 – состав таблицы Technology

Имя

Функциональные зависимости

id



Name

MaxSpeed

Wire

Таблица 2.5 – состав таблицы Services

Имя

Функциональные зависимости

id



Name

Таблица 2.5 – состав таблицы AffiliateServices

Имя

Функциональные зависимости

id



Affiliate_id

Service_id

Таблица 2.5 – состав таблицы Regions

Имя

Функциональные зависимости

id



Name

Population

4 Организация выборки информации из базы данных


В данной работе используются следующие запросы:

  1. Выборка тарифов по технологиям xDSL

SELECT DISTINCT dbo.Regions.Name, dbo.Providers.Name AS Expr1, dbo.Tariffs.Name AS Expr2

FROM dbo.Regions INNER JOIN

dbo.Affiliates INNER JOIN

dbo.Providers ON dbo.Affiliates.Provider_id = dbo.Providers.id INNER JOIN

dbo.Tariffs ON dbo.Affiliates.id = dbo.Tariffs.Affiliate_id INNER JOIN

dbo.Technology ON dbo.Tariffs.Technology_id = dbo.Technology.id ON dbo.Regions.id = dbo.Affiliates.Region_id

WHERE (dbo.Technology.Name LIKE '%DSL')

  1. Выборка тарифов с высокой скоростью (более 512 Мбит/сек)

SELECT DISTINCT

dbo.Regions.Name AS Регион, dbo.Providers.Name AS Провайдер, dbo.Tariffs.Name AS Тариф, dbo.Tariffs.MonthFee,

dbo.Technology.Name AS Технология, dbo.Tariffs.Speed

FROM dbo.Regions INNER JOIN

dbo.Affiliates INNER JOIN

dbo.Providers ON dbo.Affiliates.Provider_id = dbo.Providers.id INNER JOIN

dbo.Tariffs ON dbo.Affiliates.id = dbo.Tariffs.Affiliate_id INNER JOIN

dbo.Technology ON dbo.Tariffs.Technology_id = dbo.Technology.id ON dbo.Regions.id = dbo.Affiliates.Region_id

WHERE (dbo.Tariffs.Speed > 512)

Выбор услуг, предоставляемых провайдером RosTelecom в различных регионах

SELECT DISTINCT dbo.Regions.Name AS Регион, dbo.Services.Name AS Услуга

FROM dbo.Regions INNER JOIN

dbo.Affiliates INNER JOIN

dbo.Providers ON dbo.Affiliates.Provider_id = dbo.Providers.id ON dbo.Regions.id = dbo.Affiliates.Region_id INNER JOIN

dbo.AffiliateServices ON dbo.Affiliates.id = dbo.AffiliateServices.Affiliate_id INNER JOIN

dbo.Services ON dbo.AffiliateServices.Service_id = dbo.Services.id

WHERE (dbo.Providers.Name = 'RosTelecom')

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

SELECT DISTINCT TOP (100) PERCENT Regions_1.Name AS Регион, Providers_1.Name AS Провайдер,

(SELECT COUNT(*) AS Expr1

FROM dbo.Affiliates

WHERE (Region_id = Regions_1.id) AND (Provider_id = Providers_1.id)) AS [Количество филиалов],

(SELECT STR(SUM(Users)) AS Expr1

FROM dbo.Affiliates AS Affiliates_2

WHERE (Region_id = Regions_1.id) AND (Provider_id = Providers_1.id)) + '/' +

(SELECT STR(SUM(Users)) AS Expr1

FROM dbo.Affiliates AS Affiliates_2

WHERE (Region_id = Regions_1.id)) AS [Доля пользователей в регионе]

FROM dbo.Providers AS Providers_1 INNER JOIN

dbo.Affiliates AS Affiliates_1 ON Providers_1.id = Affiliates_1.Provider_id INNER JOIN

dbo.Regions AS Regions_1 ON Regions_1.id = Affiliates_1.Region_id

  1. Выборка, показывающая интернетификацию регионов (отношение пользователей интернета к населению)

SELECT DISTINCT TOP (100) PERCENT Name AS Регион,

(SELECT SUM(Users) AS Expr1

FROM dbo.Affiliates AS Affiliates_2

WHERE (Region_id = Regions_1.id)) AS [Пользователей в регионе], Population * 1000 AS Население,

(SELECT CAST(SUM(Users) AS float) AS Expr1

FROM dbo.Affiliates AS Affiliates_2

WHERE (Region_id = Regions_1.id)) / (Population * 1000) AS [Кол. Интернетов]

FROM dbo.Regions AS Regions_1

ORDER BY [Кол. Интернетов]

  1. Выборка безлимитных тарифов

SELECT DISTINCT

dbo.Regions.Name AS Регион, dbo.Providers.Name AS Провайдер, dbo.Tariffs.Name AS Тариф, dbo.Tariffs.MonthFee,

dbo.Technology.Name AS Технология

FROM dbo.Regions INNER JOIN

dbo.Affiliates INNER JOIN

dbo.Providers ON dbo.Affiliates.Provider_id = dbo.Providers.id INNER JOIN

dbo.Tariffs ON dbo.Affiliates.id = dbo.Tariffs.Affiliate_id INNER JOIN

dbo.Technology ON dbo.Tariffs.Technology_id = dbo.Technology.id ON dbo.Regions.id = dbo.Affiliates.Region_id

WHERE (dbo.Tariffs.TrafficPrice = 0)

  1. Выборка тарифов по беспроводным технологиям

SELECT DISTINCT

dbo.Regions.Name AS Регион, dbo.Providers.Name AS Провайдер, dbo.Tariffs.Name AS Тариф, dbo.Tariffs.MonthFee,

dbo.Technology.Name AS Технология

FROM dbo.Regions INNER JOIN

dbo.Affiliates INNER JOIN

dbo.Providers ON dbo.Affiliates.Provider_id = dbo.Providers.id INNER JOIN

dbo.Tariffs ON dbo.Affiliates.id = dbo.Tariffs.Affiliate_id INNER JOIN

dbo.Technology ON dbo.Tariffs.Technology_id = dbo.Technology.id ON dbo.Regions.id = dbo.Affiliates.Region_id

WHERE (dbo.Technology.Wire = 'False')

5 Разработка представлений для отображения результатов выборки


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


Рисунок 5.1 – представление результатов 1й выборки


Рисунок 5.2 – представление результатов 2й выборки


Рисунок 5.3 – представление результатов 3й выборки



Рисунок 5.4 – представление результатов 4й выборки


Рисунок 5.5 – представление результатов 5й выборки


Рисунок 5.6 – представление результатов 6й выборки


Рисунок 5.7 – представление результатов 7й выборки

6 Проектирование хранимых процедур


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

1. Для определения интернетификации региона:

CREATE PROCEDURE [dbo].[GET_INTERNETS] @REGION varchar(50)

AS

BEGIN

SET NOCOUNT ON;
SELECT CAST(SUM(Users) AS float) / (SELECT Population * 1000 FROM REGIONS WHERE Name =@REGION) AS Internets

FROM Affiliates

WHERE Region_id = (SELECT id FROM REGIONS WHERE Name =@REGION)

END



Рисунок 6.1 Результаты работы хранимой процедуры 1

2. Для увеличения (или уменьшения) населения региона:

CREATE PROCEDURE [dbo].[INCREASE_POPULATION]

@REGION varchar(50),

@NUM int

AS

BEGIN

SET NOCOUNT ON;

UPDATE REGIONS

SET POPULATION=POPULATION+@NUM

WHERE RTRIM(LTRIM(NAME))=@REGION

END


Рисунок 6.2 Результаты работы хранимой процедуры 2

7 Разработка механизмов управления данными в базе при помощи
триггеров

7.1 Триггер для добавления данных




1. Триггер для вставки и обновления данных в таблице Providers, не допускающий повторения названий провайдеров


CREATE TRIGGER [dbo].[CINSERTION_CHECK]

ON [dbo].[Providers]

FOR INSERT, UPDATE

AS

BEGIN

SET NOCOUNT ON;

IF (SELECT Count(*) FROM [dbo].[Providers], [inserted]

WHERE [dbo].[Providers].[Name] = [inserted].[Name])> 1

BEGIN

PRINT 'Такой провайдер уже есть' ROLLBACK TRAN

END

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END



Рисунок 7.1 Результаты работы триггера вставки таблице Providers
2. Тригер, проверяющий правильность формата e-mail

CREATE TRIGGER [dbo].[INSERTION_CHECK]

ON [dbo].[Affiliates]

FOR INSERT, UPDATE

AS

BEGIN

SET NOCOUNT ON;

IF (SELECT Count(*) FROM [inserted] WHERE [Email] LIKE '%@%.%' AND NOT ([Email] IS NULL ) ) = 0

BEGIN

PRINT 'Неверный формат e-mail' ROLLBACK TRAN

END

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END



Рисунок 7.2 Результаты работы триггера вставки таблице Affiliates

7.2 Триггер для удаления данных


Триггер для каскадного удаления данных из таблицы Affiliates при удалении записи из таблицы Providers


CREATE TRIGGER [dbo].[CASCADE_DEL]

ON [dbo].[Providers]

FOR DELETE

AS

BEGIN

SET NOCOUNT ON;

DELETE Affiliates

FROM Affiliates a, deleted d WHERE a.Provider_id = d.id


IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END



Рисунок 7.3 Результаты работы триггера удаления таблице Providers
7.3 Триггер для обновления данных
Тригер запрещает изменение названия организации

CREATE TRIGGER [dbo].[UPDATE_CHECK]

ON [dbo].[Providers]

FOR UPDATE AS

BEGIN

SET NOCOUNT ON;

IF (NOT ( (SELECT [Name] FROM [inserted]) = (SELECT [Name] FROM [deleted]) ) )

BEGIN

PRINT 'Нельзя поменять название' ROLLBACK TRAN

END

IF @@ERROR != 0

BEGIN

PRINT 'Error occurred during related tables' ROLLBACK TRAN

END

RETURN

END



Рисунок 7.1 Результаты работы триггера обновления в таблице Providers

8 Разработка технологий доступа к базе данных

8.1 Выбор пользователей базы данных


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

8.2 Выбор пользователей базы данных


Серверное приложение разрешает пользователям использовать только запрос SELECT и вызывать хранимые процедуры, не вносящие изменений в БД. Администраторы имеют полный доступ ко всем элементам БД.

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

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


Клиентское приложение осуществляет через экранные формы взаимодействие пользователя с таблицами данных и управляющим сервером по технологии ADO.NET. Экранные формы приложения показаны в Приложении 1.

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


В данном проекте обмен данными с другими БД не использовался, однако в случае необходимости для этого необходимо в начале создать так называемое соединение (Connection), после чего на основании этого соединения создать удаленное представление (Remote View).
11 Экономическое обоснование результатов внедрения программного
продукта
Данный программный продукт был внедрен с целью ускорения выполнения операций по анализу рынка интернет-провайдеров. Продукт является относительно не требовательным к ресурсам как сервера, так и отдельной рабочей станции. Для сервера достаточно будет не менее 512 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4 (стоимость ~10000 руб.), для рабочей станции – не менее 256 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4 (стоимость ~8000 руб.). Так как в организации «StavropololoProvider» анализом рынка занимаются 4 человек, то необходимо приобрести 4 рабочих станции и 1 сервер. В сумме на приобретение компьютеров будет затрачено 42 000 руб. Все компьютеры находятся в одном здании на расстоянии 10, 15х2 и 25 метров от сервера. Метр сетевого кабеля стоит 5 рублей, коммутатор на 5 портов стоит 500 рублей. В сумме на прокладку ЛВС будет затрачено 825 рублей. На приобретение программного обеспечения необходимо затратить 30 000 руб. Всего необходимо 72 825 рублей.

Экономический эффект от внедрения разработки в течение года использования можно определить по формуле:

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

Экономию средств от внедрения продукта можно рассчитать по формуле:

. (5)

Здесь – затраты на ручную обработку информации, руб, , – объем информации, обрабатываемой вручную, Мбайт, Ц – стоимость одного часа работы, руб/час, - коэффициент, учитывающий дополнительные затраты времени на логические операции при ручной обработке информации, – норма выработки, Мбайт/час. За – затраты на автоматизированную обработку информации, руб, – время автоматической обработки (час), – стоимость одного часа машинного времени, руб/час; – время работы оператора, час; - стоимость одного часа работы оператора, руб./час.

Эу = Он*Ц*Гдрtaм*t00 = 200*100*1.5*2 – 50*1*5*1*200

= 60000 – 50000 = 10000

Эффективность разработки:

Er = 10000 – 0.2*10000 = 8000

Тогда эффективность разработки может быть определена по формуле:

= 8000*0.4/10000 = 0.32

Использование на предприятии разработанного программного продукта экономически целесообразно, так как значение .

12 Требования к техническому обеспечению

Для работы приложений требуется следующее программное обеспечение: операционной системе Windows 2000/XP/Vista c установленным .Net Framwork 2.0. Аппаратные требования данного продукта совпадают с аппаратными требованиями операционной системы, для которых он предназначен.


Объем ОЗУ для эффективной работы приложения определяется по формуле:

,

где – минимальные требования со стороны операционной системы, – минимальный размер подгружаемых модулей, – дополнительное пространство ОЗУ.

Итак, имеем:

V= 200+150+50=400 мегабайт

Свободное пространство на жестком диске определяется равенством:

,

где – объем инсталляционного пакета программы; – объем файлов базы данных; – объем временных файлов, создающихся программой в ходе запуска.

Итак, имеем

W=2+4+1=9 мегабайт

13 Инструкция по эксплуатации базы данных и клиентского приложения


Вызов данной программы не отличается от запуска любой другой программы из среды операционной систем: пользователю необходимо скопировать файлы приложения на жесткий диск и запустить приложение с расширением .exe в корневом каталоге программы. Данное приложение для работы требует наличие установленного .net framework 2.0 версии и выше. Никаких дополнительных действий от пользователя не требуется.

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

ЗАКЛЮЧЕНИЕ


В итоге курсового проектирования была разработанна реляционная база «Рынок интернет провайдеров» и клиентское приложение «Providers» для организации «StavropololoProvider». Были подробно рассмотрены все аспекты функционирования этой системы, логической, программной и физической ее реализации.

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

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

  1. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А. Д. Хомоненко. – Издание второе, дополненное и переработанное. – СПб.: КОРОНА принт, 2002.- 672 с.

  2. Глушаков С. В., Ломотько Д. В. Базы данных: Учебный курс. – Харьков: Фолио; Ростов н/Д: Феникс; Киев: Абрис, 2000. – 504 с.

  3. Мишенин А. И. Теория экономических информационных систем –М.: Финансы и статистика, 1999. – 168 с.

  4. Смирнова Г. Н., Сорокин А. А., Тельнов Ю. Ф. Проектирование экономических информационных систем: Учебник для высших учебных заведений / Под ред. Ю. Ф.

ПРИЛОЖЕНИЕ 1

Экранные формы приложения




Рисунок 1 - окно входа
Рисунок 2- главное окно программы


Рисунок 3 – окна просмотра и редактирования таблиц


Рисунок 4 – окно выполнения произвольного запроса

ПРИЛОЖЕНИЕ 2

Листинг программы


Файл: 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;

namespace Providers

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private string login;


private void увеличитьПопуляциюToolStripMenuItem_Click(object sender, EventArgs e)

{

increase_population win = new increase_population();

win.MdiParent = this;

win.Show();

}


private void регионыToolStripMenuItem_Click(object sender, EventArgs e)

{

Регионы win = new Регионы();

win.MdiParent = this;

win.Show();

}


private void филиалыToolStripMenuItem_Click(object sender, EventArgs e)

{

Филиалы win = new Филиалы();

win.MdiParent = this;

win.Show();

}


private void тарифыToolStripMenuItem_Click(object sender, EventArgs e)

{

Тарифы win = new Тарифы();

win.MdiParent = this;

win.Show();

}


private void провайдерыToolStripMenuItem_Click(object sender, EventArgs e)

{

Провайдеры win = new Провайдеры();

win.MdiParent = this;

win.Show();

}


private void услугиToolStripMenuItem_Click(object sender, EventArgs e)

{

Услуги win = new Услуги();

win.MdiParent = this;

win.Show();

}


private void технологииToolStripMenuItem_Click(object sender, EventArgs e)

{

Технологии win = new Технологии();

win.MdiParent = this;

win.Show();

}


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

{

Application.Exit();

}


private void запросыToolStripMenuItem_Click(object sender, EventArgs e)

{


}


private void новыйЗапросToolStripMenuItem_Click(object sender, EventArgs e)

{

Новый_запрос win = new Новый_запрос();

win.MdiParent = this;

win.Show();

}


private void Form1_Load(object sender, EventArgs e)

{

login win = new login();

win.okBtn.Click += delegate

{

if (win.loginTB.Text == "Администратор")

{

if (win.passwordTB.Text == "123")

{

win.Hide();

this.login = "Администратор";

}

else

{

MessageBox.Show("Неверный пароль");

}

}

if (win.loginTB.Text == "Пользователь")

{

if (win.passwordTB.Text == "123")

{

win.Hide();

this.login = "Пользователь";

}

else

{

MessageBox.Show("Неверный пароль");

}

}

};

win.FormClosed += delegate

{

this.Close();

};

win.ShowDialog();

}

}

}


Файл: Новый_запрос.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;

namespace Providers

{

public partial class Новый_запрос : Form

{

public Новый_запрос()

{

InitializeComponent();

}


private void cancel_Click(object sender, EventArgs e)

{

this.DialogResult = DialogResult.Cancel;

this.Close();

}


private void OK_Click(object sender, EventArgs e)

{

string query = queryTB.Text;


System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.ProvidersConnectionString);

con.Open();

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(query, con);


System.Data.SqlClient.SqlDataReader r = cmd.ExecuteReader();


if (r.HasRows)

{

r.Read();

for (int i = 0; i < r.FieldCount; i++)

result.Columns.Add(i.ToString(), i.ToString());

do

{

int ix = result.Rows.Add(1);


for (int i = 0; i < r.FieldCount; i++)

{

result.Rows[ix].Cells[i].Value = r[i].ToString();

}

} while (r.Read());

}


r.Close();

con.Close();


r.Close();


}

}}

1. Биография Чеснеки де Милвань, Дьюла
2. Реферат Система цивільного права 2
3. Реферат Отчет по производственной практике ОАО Альфа банк
4. Реферат на тему The Use Of History Essay Research Paper
5. Реферат Філатов В П - офтальмолог хірург
6. Диплом на тему Личный пример учителя в начальной школе
7. Реферат на тему AIDS Report Essay Research Paper What is
8. Контрольная работа Вклады участников ООО в уставной капитал и в имущество общества
9. Реферат на тему The Cuban Missile Crisis 2 Essay Research
10. Реферат Внушение