Использование объектов ADO.NET для работы с базами данных. Заполнение БД MS SQL Server, соответствующей предметной области

Страницы работы

Фрагмент текста работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О. СУХОГО

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

Кафедра «Информационные технологии»

ОТЧЕТ   ПО   ЛАБОРАТОРНОЙ   РАБОТЕ   № 3

по дисциплине: « Разработка приложений баз данных для информационных систем»

на тему: «Использование объектов ADO.NET для работы с базами данных»

Выполнил:    студент гр. ИТ-32

Принял:          доцент                                                            

Гомель 2015

Цель работы: Изучить назначение и свойства, получить навыки использования объектов и классов ADO.NET, предназначенных для работы с данными из реляционных источников.

ЗАДАНИЕ

Используя среду Microsoft Visual Studio и объекты ADO.NET (Connection, Command, DataAdapter, DataSet и другие) написать программу, которая будет выполнять следующие функции:

1. заполнение БД MS SQL Server, соответствующей предметной области вашего варианта, тестовыми данными. Таблицы на стороне отношения один должны содержать не менее 100 записей, таблице на стороне отношения многие должны содержать не менее 10000 записей.

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

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

2. отображение данных, занесенных в таблицы на Windows-форме с использованием табличных элементов управления, например, dataGridView.

Ход работы и результаты

Для работы с данными на сервере , нужно подключится к нему. Для этого мы используем следующую запись : Data Source=WHITEHAT-PC;Initial Catalog=LabRab3;Integrated Security=True”.

После успешного подключения к серверу нужно создать и заполнить базу данными. Для этого в программе считывается файл “db.txt” , содержащий следующие записи :

Файлdb.txt :

USE LabRab3

DROP TABLE [Должности]

DROP TABLE [Факультет]

DROP TABLE [Кафедры]

DROP TABLE [Дисциплины]

DROP TABLE [Сотрудники]

DROP TABLE [Дата_рождения]

DROP TABLE [Преподаватели]

DROP TABLE [Закрепление_дисциплин]

DROP TABLE [Специальности]

DROP TABLE [Учебная_нагрузка]

CREATE TABLE [Должности]

(

[КодДолжности]       int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[Наименование]       varchar(50)  NULL

)

CREATE TABLE [Факультет]

(

[КодФакультета]      int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[Наименование]       varchar(50)  NULL

)

CREATE TABLE [Кафедры]

(

[КодКафедры]         int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[КодФакультета]      integer  NOT NULL ,

[ТипКафедры]         varchar(50)  NULL ,

[НаименованиеКафедры] varchar(50)  NULL

)

CREATE TABLE [Дисциплины]

(

[КодДисциплины]      int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[Наименование]       varchar(50)  NULL ,

[Курс]               integer  NULL ,

[Семестр]            integer  NULL

)

CREATE TABLE [Сотрудники]

(

[КодСотрудника]      int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[ФИО]                varchar(50)  NULL ,

[КодДолжности]       integer  NOT NULL ,

[КодДисциплины]      integer  NULL

)

CREATE TABLE [Дата_рождения]

(

[КодДатыРождения]    int IDENTITY(1,1) NOT NULL PRIMARY KEY,

[КодСотрудника]      integer  NOT NULL ,

[ГодРождения]        date NOT  NULL

)

CREATE TABLE [Преподаватели]

(

[КодПреподавателя]   int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[ФИО]                varchar(50)  NULL ,

[КодДисциплины]      integer  NOT NULL ,

[Наименование]       varchar(50)  NULL ,

[КодКафедры]         integer  NOT NULL

)

CREATE TABLE [Закрепление_дисциплин]

(

[КодЗакрепления]    int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[КодПреподавателя]   integer  NOT NULL ,

[КодДисциплины]      integer  NOT NULL ,

[Семестр]            integer NOT NULL ,

[Год]               date  NOT NULL

)

CREATE TABLE [Специальности]

(

[КодСпециальности]   int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[КодКафедры]         integer  NOT NULL ,

[Наименование]       varchar(50)  NULL ,

[Дисциплины]         varchar(50)  NULL ,

[КодДисциплины]      integer  NOT NULL

)

CREATE TABLE [Учебная_нагрузка]

(

[КодНагрузки]        int IDENTITY(1,1) NOT NULL PRIMARY KEY ,

[КодСпециальности]   integer  NOT NULL ,

[КодДисциплины]      integer  NOT NULL ,

[КоличествоЛекции]   integer  NULL ,

[КоличествоПрактик]  integer  NULL ,

[КоличествоЛабораторных] integer  NULL ,

[Семестр]            integer  NOT  NULL ,

[Год]                date NOT NULL ,

[КодКафедры]         integer  NOT NULL

)

SET NOCOUNT ON

DECLARE @Symbol CHAR(52)= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',

@Position INT,

@i INT,

@LengthStr INT,

@str1 nvarchar(50),

@str2 nvarchar(50),

@str3 nvarchar(50),

@Number int ,

@RowCount INT,

@NameLimit INT

BEGIN TRAN

SET @Number =1000

SELECT @i=0 From dbo.Факультет WITH (TABLOCKX) WHERE 1=0

SET @RowCount = 1         

while @RowCount<=@Number

begin

set @str1 =''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1

end

insert into dbo.Факультет(Наименование)

select @str1                      

set @RowCount +=1

end

select @i=0 from dbo.Должности with (tablockx) where 1=0

set @RowCount = 1

while @RowCount<=@Number

begin

set @str1 =''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1

end

insert into dbo.Должности(Наименование)

select @str1                      

set @RowCount +=1

end       

select @i=0 from dbo.Дата_рождения       with (tablockx) where 1=0             

set @RowCount = 1          

while @RowCount<@Number

begin

set @str1 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1

end

insert into dbo.Дисциплины(Наименование,Курс,Семестр)

values (@str1,((RAND()*4)+1),(RAND()*9)+1)

set @RowCount +=1

end

select @i=0 from dbo.Дата_рождения       with (tablockx) where 1=0

set @RowCount = 1

while @RowCount<@Number

begin                   

set @str1 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1

end

insert into dbo.Сотрудники(КодДолжности,КодДисциплины,ФИО)

values(CAST( (1+RAND()*99) as int),CAST( (1+RAND()*99) as int),@str1)

set @RowCount +=1

end

select @i=0 from dbo.Кафедры     with (tablockx) where 1=0

set @RowCount = 1

while @RowCount<@Number

begin                   

set @str1 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1

end

set @str2 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str2 = @str2 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1;

end

insert into dbo.Кафедры (КодФакультета,ТипКафедры,НаименованиеКафедры)

select CAST( (1+RAND()*99) as int),@str1,@str2

set @RowCount +=1

end

select @i=0 from dbo.Дата_рождения       with (tablockx) where 1=0

set @RowCount = 1          

while @RowCount<=@Number

begin

set @str1 =''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1+ SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1;

end       

insert into dbo.Дата_рождения(КодСотрудника,ГодРождения)

select CAST( (1+RAND()*999)as int),dateadd(day,-RAND()*1500,GETDATE())

set @RowCount +=1

end       

select @i=0 from dbo.Преподаватели        with (tablockx) where 1=0                  

set @RowCount = 1          

while @RowCount<=@Number

begin

set @str1 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1 + SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1;

end

set @str2 =''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str2 = @str2+ SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1;

end

insert into dbo.Преподаватели(КодДисциплины,КодКафедры,ФИО,Наименование)

values (CAST( (1+RAND()*99)as int),CAST( (1+RAND()*999)as int),@str1,@str2)

set @RowCount +=1

end

select @i=0 from dbo.Специальности         with (tablockx) where 1=0                  

set @RowCount = 1          

while @RowCount<=@Number

begin

set @str1 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str1 = @str1+ SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1;

end

set @str2 = ''

set @NameLimit = 5+RAND()*45

set @i=1

while @i<@NameLimit

begin

set @Position=RAND()*52

set @str2 = @str2+ SUBSTRING(@Symbol, @Position, 1)

set @i=@i+1;

end

insert into dbo.Специальности(КодДисциплины,КодКафедры,Наименование,Дисциплины)

values (CAST( (1+RAND()*99)as int),CAST( (1+RAND()*99)as int),@str1,@str2)

set @RowCount +=1

end

select @i=0 from dbo.Закрепление_дисциплин      with (tablockx) where 1=0     

set @RowCount = 1          

while @RowCount<=@Number

begin

insert into dbo.Закрепление_дисциплин(КодДисциплины,КодПреподавателя,Год,Семестр)

values (CAST( (1+RAND()*99)as int),CAST( (1+RAND()*99)as int),dateadd(day,-RAND()*1500,GETDATE()),((RAND()*9)+1))

set @RowCount +=1

end       

select @i=0 from dbo.Учебная_нагрузка   with (tablockx) where 1=0     

set @RowCount = 1          

while @RowCount<=@Number

begin

insert into dbo.Учебная_нагрузка(КодКафедры,КодДисциплины,КодСпециальности,КоличествоЛабораторных,КоличествоЛекции,КоличествоПрактик,Семестр,Год)

values (CAST( (1+RAND()*99)as int),CAST( (1+RAND()*99)as int),CAST( (1+RAND

Похожие материалы

Информация о работе