13136

Средства Visual Studio.Net – ADO.NET для работы с базами данных

Лабораторная работа

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

Лабораторная работа по темеТема 5.6. Средства Visual Studio.Net – ADO.NET для работы с базами данных Цель данной работы состоит в изучении технологии ADO.NET при разработке проекта средствами Visual Basic.Net VB.NET с использованием базы данных БД реляционного типа состоящей из одной таб

Русский

2013-05-08

424.42 KB

93 чел.

Лабораторная работа по теме
«Тема 5.6. Средства Visual Studio.Net – ADO.NET
для работы с базами данных»

Цель данной работы состоит в изучении технологии ADO.NET при разработке проекта средствами Visual Basic.Net (VB.NET) с использованием базы данных (БД) реляционного типа, состоящей из одной таблицы.

5.6.1. Вопросы, подлежащие изучению

  1. Основные понятия и определения БД.
  2.  БД  реляционного типа.
  3. Основные варианты работы с БД в VB.NET с использованием технологии ADO.NET.
  4. Создание реляционной БД в среде СУБД  Access.
  5. Установка соединения с базой данных в проекте.
  6. Создание приложения с  БД.
  7. Использования коллекций при адресации к ячейкам таблицы.

5.6.2. Задание

  1.  Выбрать вариант задания из таблицы 5.6-1 и выполнить его с применением  стандартного модуля.

  1.  Провести уточнения задания, для чего необходимо:
  2. уточнить необходимые данные;
  3. определиться с названием проекта, БД и ее таблицы;
  4. при необходимости привести расчетные формулы, которые будут использоваться для преобразования исходных данных в результаты.

  1.  Разработать БД
  2. разработать ER-модели; 
  3. создать БД средствами СУБД Access.

  1.  Разработать приложение (проект) средствами VB.NET.
  2. разработать интерфейс пользователя с элементами, предназначенными для отображения данных таблицы БД, для отображения управляющих элементов, для отображения  результатов решения задачи);
  3. создать проект и установить подключение к данным базы данных;
  4. доработать проект для изменения значений набора данных;
  5. составить общую (укрупненную) схему алгоритма решения задачи;
  6. составить схемы алгоритмов решения функциональных задач с учетом того,  что они могут быть реализованы со стандартным модулем или с классом пользователя;
  7. создать программный код проекта, который реализует поставленную задачу.

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

  1.  Получить решение и подготовить отчет.

5.6.3. Варианты заданий

Таблица 5.6-1

Номер

Название и содержимое таблицы БД

Выборка

1

Студенты: дата проверки, группа, фамилия студента, число пропусков по математике, физике и физкультуре.

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

2

Студенты: дата проверки, группа, фамилия студента, число пропусков по математике, физике и физкультуре.

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

3

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

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

4

Студенты: дата проверки, группа, фамилия студента, число пропусков по математике, физике и физкультуре.

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

5

Магазин: название магазина, название товара, стоимость товара, дата продажи.

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

6

Студенты: дата проверки, группа, фамилия студента, число пропусков по математике, физике и физкультуре.

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

7

Сотрудники: табельный номер, должность, год рождения, оклад, фамилия.

Выбрать самых молодых  сотрудников с максимальным окладом.

8

Товар: наименование товара, количество на складе, дата поступления, изготовитель.

Выбрать список товаров заданного изготовителя, количество которых находится в заданных пределах.

9

Сотрудники: табельный номер, должность, оклад, фамилия.

Выбрать сотрудников заданной должности с максимальным окладом.

10

Аэропорт: марка самолета, количество мест, средняя стоимость билета, количество проданных билетов.

Выбрать марки самолетов, для которых количество проданных билетов меньше половины всех мест самолета.

11

Магазин: дата покупки, фамилия покупателя, название товара, цена.

Выбрать покупателей, купивших самый дешевый товар.

12

Детали: код детали, название, норма расхода материала на деталь, сорт.

Выбрать детали первого и второго сорта.

13

Предприятие: название предприятия, количество сотрудников предприятия, профессии.

Выбрать предприятия, имеющие заданные профессии.

14

Сотрудники: табельный номер, должность, оклад, фамилия.

Выбрать сотрудников, средний заработок которых больше заданного.

15

Сотрудники: табельный номер, профессия, оклад, фамилия.

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

16

Автомобили: модель авто, стоимость, цвет кузова, наличие или отсутствие автоматической коробки передач.

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

17

Автомобили: модель, стоимость. год выпуска, страна сборки.

Выбрать автомобили, упорядочив их по году выпуска.

18

Изделия: код изделия, название предприятия, план выпуска, фактический выпуск.

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

19

Предприятия: название, количество сотрудников, профессии.

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

20

Изделия: код изделия, наименование изделия, название предприятия, план выпуска, фактический выпуск.

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

21

Предприятия: название, количество сотрудников, объем выпускаемой продукции, профессии.

Выбрать предприятия, имеющие минимальное количество сотрудников и наибольший объем выпуска.

22

Радиолокационные станции: адрес станции, год ввода в эксплуатацию, тип используемой антенны, диапазон.

Выбрать для каждого диапазона самые старые станции.

23

Студенты: год рождения, адрес, дата зачисления, номер приказа, факультет, группа.

Выбрать самых молодых студентов для каждого факультета.

24

Радиолокационные станции: адрес станции, год ввода в эксплуатацию, тип используемой антенны, диапазон.

Вывести станции, сгруппировав их по типам антенн.

25

Преподаватели: год рождения, адрес, телефон, кафедра, должность, учёная степень.

Выбрать самых молодых преподавателей, не имеющих ученой степени, и самых пожилых преподавателей с ученой степенью.

26

Книги издательства: авторы, название, раздел (техническая, общественно-политическая и т.п.), год издания, количество страниц, цена.

Выбрать все книги, цена которых выше средней цены для всех книг данного издательства.

27

Читатели: номер читательского билета, ФИО,  год рождения, дата записи, вид читателя (студент, аспирант и т.п.), названия взятых книг и даты их выдачи.

Определить общее количество книг по каждому виду читателя.

28

Продажи: наименования товаров, поставка из магазина или со склада, количество и стоимость товара.

Определить самый дорогой товар из магазина и самый дешевый со склада.

29

Блюда: цена, название, категория (мясное, рыбное, салат и т.п.), является ли вегетарианским, время приготовления (в мин.), есть ли в наличии.

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

30

Проекты: название, дата начала, дата окончания, размер финансирования, тип финансирования (периодический, разовый), исполнитель.

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

5.6.4. Содержание отчета

Тема и название работы.

Задание на разработку проекта  и вариант задания.

Уточнение задания.

Разработка БД:

  1. Разработка ER-модели.
  2. Создание БД средствами СУБД Access.

Разработка приложения:

  1.   Графический интерфейс пользователя.
  2.   Результаты  установки соединения с базой данных.
  3.   Укрупненная схема алгоритма решения задачи и схемы алгоритмов  

       функциональных задач.

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

        задач и  стандартного модуля.

Результаты выполнения приложения.


5.6.5. Пример разработки приложений для работы
с базой данных «Посещаемость студентов»,
созданной в среде СУБД Access

  1.  Тема и название работы

Средства Visual Studio.Net – ADO.NET для работы с базами данных. Разработка приложения для работы с БД «Посещаемость студентов».

  1.  Задание на разработку БД предметной области «Посещаемость студентов»

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

  1.  Уточнение задания

Данные о каждом студенте должны содержать:

  1.  дату рубежного контроля;
  2.  номер группы;
  3.  фамилию студента;
  4.  год рождения;
  5.  число пропущенных часов по информатике;
  6.  число пропущенных часов по математике;
  7.  число пропущенных часов по физике.

 БД назовем Stud.mdb, а таблицу этой  БД - СТУДЕНТЫ.

  1.  Разработка БД
  2.   Разработка ER-модели

 Опишем сущность-таблицу на языке инфологического моделирования:

СТУДЕНТЫ (N, дата, группа, фамилия, год, информатика, математика, физика).

  1.   Создание БД, содержащей одну таблицу, средствами СУБД Access
  2. Запустите приложение Microsoft Access. Создайте новую базу данных –

Stud.mdb.

  1. Задать структуру таблицы в конструкторе (имена, типы и свойства полей):
  2.  N – Счетчик, Ключевое поле;
  3.  Дата – Дата/время;
  4.  Группа – Текстовый, Обязательное поле – Да, Индексированное – Да (Совпадения допускаются);
  5.  Фамилия –Текстовый, Обязательное поле – Да, Индексированное – Да (Совпадения допускаются);
  6.  Год, Информатика, Математика, Физика – все Числовой.

  1. Закрыть окно конструктора, сохранить таблицу под именем СТУДЕНТЫ .
  2. Ввести в  таблицу СТУДЕНТЫ  10-15 записей и сохранить их в БД Stud.mdb.

  

  Рис.5.6-1

 

  1.  Разработка приложения:
  2.  Разработать графический интерфейс пользователя:

    Графический интерфейс пользователя приведен на рис 5.6-2.

    Обратите внимание, что макет таблицы СТУДЕНТЫ на форме появляется

        только  после выполнения пункта 5.2.10  (рис. 5.6.10).

       

    Рис. 5.6-2

  1.   Подключение к данным базы данных Stud.mdb  СУБД Access:
  2. Создать новый проект с именем ФАМИЛИЯ_ГРУППА (например, IVANOV_OC0701).
  3. В элементе главного меню Данные (Data) выбрать команду Показать источники данных и в появившемся окне Источники данных выбрать Добавить новый источник данных.  В среде разработки появится окно Мастер настройки источника данных (Data Source Configuration Wizard),  изображенное  на  рис. 5.6-3.

     Рис. 5.6-3

  1. Выбрать Источник данных для приложения – База данных и нажать кнопку Далее. В окне Мастер настройки источника данных выбрать соответствующее подключение (рис.5.6-4) и нажать Создать подключение.

Рис. 5.6-4

  1.  Мастер отобразит форму – Добавление подключения (Add Connection), которая помогает установить соединение с базой данных, создав связывающую строку (рис. 5.6-5).

Рис. 5.6-5.

  1. Ввести путь к файлу базы данных Stud.mdb или щелкнуть кнопку Обзор, чтобы найти этот файл, а затем нажать кнопку ОК. Снова появится диалоговое окно Добавление подключения (Add Connection), содержащее путь к базе данных.
  2. Щелкнуть на кнопке Проверить подключение (Test Connection). Visual Studio попробует открыть указанный файл базы данных, используя связывающую строку, созданную мастером. Если база данных имеет правильный формат, то будет выдано сообщение  Проверка подключения выполнена.

Щелкнуть на кнопке ОК, чтобы закрыть окно сообщения, а затем щелкнуть на кнопке ОК, чтобы закрыть диалоговое окно Добавление подключение (Add Connection). Visual Studio снова отобразит окно Мастер настройки источника данных (Data Source Configuration Wizard).

  1. Щелкнуть на кнопке Далее. Мастер отобразит предупреждение, указывающее, что была выбрана новая локальная база данных, и спросит, следует ли скопировать базу данных в папку проекта. Это сообщение появляется только при установке первого соединения с файлом локальной базы данных. При повторном выполнении этого упражнения данного сообщения не будет
    (рис. 5.6-6).

Рис. 5.6-6

Чтобы избежать создания дополнительной копии базы данных, щелкните на  Нет.

  1. В Мастере настройки источника данных (Data Source Configuration Wizard) включить опцию Да, сохранить подключение  (рис. 5.6-7) и нажать кнопку Далее.

      Рис. 5.6-7

  1. Теперь будет выдан запрос на выбор подмножества объектов базы данных, которые будут использоваться в данном проекте, как показано в окне Мастер настройки источника данных, показанном на рис. 5.6-8.

      Рис. 5.6-8.

 

   

  

   Выберите все таблицы (поставив флажок) и нажмите Готово.

    

       Рис. 5.6-9.

  1. В окне Источники данных (рис. 5.6-9.) выделите таблицу СТУДЕНТЫ и перетащите ее на форму. Становятся видны названия полей
    (рис. 5.6.10.). Это происходит благодаря тому, что подключается элемент управления DataGridView, позволяющий иметь на форме элемент в виде таблицы с заголовками, делая тем самым удобным зрительное восприятие таблицы БД, а также навигационную панель (вверху формы) BindingNavigator, имеющую кнопки для перемещения по записям, добавления, удаления и сохранения записей в наборе DataSet. Кроме того, в результате перетаскивания таблицы на форму в  код программы добавляется  процедура СтудентыBindingNavigatorSaveItem_Click( ) и обработчик событий Form1_Load( ),  который будет выполняться  при загрузке формы (рис. 5.6-14).

 Рис. 5.6.10

  1. Запустить отладку   проекта.

  На форме отобразится  заполненная таблица (рис. 5.6-11).

  Рис. 5.6-11

  1.  Изменение значений набора данных
  2. Произвести непосредственно в таблице, представленной на форме, простое изменение, например, изменить данные об информатике для первого студента. Обратите внимание на появляющийся значок карандаша слева от записи при ее изменении.
  3. Не закрывая проекта, открыть таблицу СТУДЕНТЫ в СУБД Access, и убедиться в том, что никаких изменений в самой БД не произошло. Сами изменения проводились в наборе данных, т.е. в StudDataSet.

Для сохранения же изменений в БД необходимо использовать метод
Update( ).

  1. Перейти в проект и остановить отладку.
  2. Добавить в проект процедуры Button1_Click( ) (кнопка Записать в БД) и Button2_Click( ) (кнопка End) (рис. 5.6-12).

Private Sub Button1_Click(ByVal sender As System.Object, _

       ByVal e As System.EventArgs) Handles Button1.Click

      Me.СтудентыTableAdapter.Update(Me.StudDataSet.Студенты)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, _

       ByVal e As System.EventArgs) Handles Button2.Click

       End

End Sub

Рис. 5.6-12

  1. Запустить отладку проекта, произвести изменения в одной записи таблицы в проекте и нажать на кнопку Записать в БД, а затем на кнопку END в форме. Открыть таблицу СТУДЕНТЫ в БД СУБД Access и убедиться в том, что изменения произошли непосредственно в самой БД.

  1.   Разработка укрупненной схемы алгоритма решения задачи и схем

   алгоритмов  функциональных задач.

 Укрупненная схема алгоритма приведена на рис. 5.6.-13.

 Схемы алгоритмов   функциональных задач составить самостоятельно.

 Рис. 5.6.-13

  1.   Разработка программного кода проекта с использованием, стандартного  

  модуля и процедур.

  1. Программный код  для решения заданной задачи приведен на рис. 5.6-14,   с учетом того,  что форма содержит заголовок (Label1), 3 кнопки (Button1, Button2,      Button3), текстовые поля (TextBox1 и TextBox2) с заголовками (Label2 и Label3).

Option Explicit On

Module Module1

   Sub rtr(ByVal n As Integer, ByRef max As Integer, _

           ByRef t As String, ByRef b As DataRowCollection)

       Dim i, j As Integer

       Dim learn() As String = {"информатика", "математика", "физика"}

       max = -2147483648

       For i = 0 To n

           For j = 5 To 7

               If b(i)(j) > max Then

                   max = CInt(b(i)(j))

               End If

           Next

       Next

       For i = 0 To n

           For j = 5 To 7

               If b(i)(j) = max Then

                   t = t & b(i)(1) & " , " & learn(j - 5) & " , _

                                     " & b(i)(3) & vbCrLf

               End If

           Next

       Next

   End Sub

   Sub vivod(ByVal z As String, ByVal T As TextBox)

       T.Text = z

   End Sub

End Module

Public Class Form1

   Private Sub СтудентыBindingNavigatorSaveItem_Click _

          (ByVal sender As System.Object, ByVal e As System.EventArgs)

       Me.Validate()

       Me.СтудентыBindingSource.EndEdit()

       Me.СтудентыTableAdapter.Update(Me.StudDataSet.Студенты)

   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles MyBase.Load

       'TODO: Данная строка кода позволяет загрузить

       'данные в таблицу "StudDataSet.Студенты".

       Me.СтудентыTableAdapter.Fill(Me.StudDataSet.Студенты)

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button1.Click

       Dim t As String = ""

       Dim nz, m As Integer

       Dim b As DataRowCollection

       TextBox1.Text = "" : TextBox1.Text = ""

       b = StudDataSet.Студенты.Rows

       nz = StudDataSet.Студенты.Rows().Count()- 1 'число записей в БД

       rtr(nz, m, t, b)

       vivod(Str(m), TextBox1) : vivod(t, TextBox2)

   End Sub

 

   Private Sub Button2_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button2.Click

       End

   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button3.Click

       Me.СтудентыTableAdapter.Update(Me.StudDataSet.Студенты)

   End Sub

End Class

   Рис.  5.6-14

  1. Для решения функциональных задач в данной лабораторной работе нам необходимо знать, что объект StudDataSet включает в себя коллекцию Tables, состоящую из таблиц типа DataTable. Каждая таблица из этой коллекции включает в себя коллекцию Columns столбцов (полей) типа DataColumn и коллекцию Rows строк (записей) типа DataRow. Каждая строка к тому же позволяет обращаться к своим полям по индексу, как к элементам массива.

Коллекции представляют собой набор элементов одного или разного типов. Обычно коллекции составляют из элементов управления или каких-либо других объектов. Коллекция Tables не составляется, а уже имеется в VB.

Таким образом, мы имеем возможность обращаться к полям БД, например:

StudentDataSet.Tables (“Студенты”).Rows(4)(3).

Это выражение есть объект, представляющий нашу таблицу СТУДЕНТЫ. У него есть свойство Rows, являющееся коллекцией строк таблицы. Строки пронумерованы с нуля, поэтому данное выражение есть запись о фамилии студента под номером 5.

Значения ячеек таблицы можно изменять банальным присваиванием:

StudDataSet.Tables (“Студенты”).Rows(4)(3)=”Сахаров”.

Чтобы избежать необходимости при обращении к ячейкам таблицы делать такие длинные записи, можно объявить короткую переменную типом коллекции строк таблицы:

Dim d As DataRowsCollection.

Затем, выполнить оператор, присваивающий этой переменной значение коллекции строк из конкретной таблицы:

d = StudDataSet.Студенты.Rows.

Теперь к этой коллекции можно обращаться, например, так:

d(4)(3) = Сахаров”.

  1.  Результаты выполнения приложения.

Результаты выполнения приложения без использования BindingNavigator приведены на рис. 5.6-15, так как элемент управления DataGridView был подключен из панели инструментов.

Рис. 5.6-15


5.6.6. Контрольные вопросы

  1. Что такое база данных?
  2. Что такое реляционная база данных?
  3. Какие основные варианты работы с БД в VB.NET с использованием технологии ADO.NET вы знаете?
  4. Как создать реляционную БД в среде СУБД  Access?
  5. Как создать таблицу в БД?
  6. Как установить соединения с базой данных в проекте?
  7. Как использовать коллекции при адресации к ячейкам таблицы БД?


 

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

13505. Владимир Владимирович Маяковский 33.5 KB
  Владимир Владимирович Маяковский 1893-1930 Выдающийся советский поэт Владимир Владимирович Маяковский родился в селе Багдады недалеко от Кутаиси в Грузии.В 1910 году студент Строгановского училища живописи ваяния и зодчества В. Маяковский сблизил...
13506. Некрасов. Н.А. 41.5 KB
  Некрасов. Н.А. 1821 1877 Родился 28 ноября 10 октября н.с. в местечке Немирове Подольской губернии в семье мелкопоместного дворянина. Детские годы прошли в селе Грешневе в родовом имении отца человека деспотического характера угнетавшего не только крепостных но и св...
13507. Тютчев Федор Иванович 63 KB
  Тютчев Федор Иванович Тютчев Ф. И. известный поэт один из самых выдающихся представителей философской и политической лирики. Родился 23 ноября 1803 года в селе Овстуг Брянского уезда Орловской губернии в родовитой дворянской семье зимою жившей в Москве открыто и богат...
13508. Цветаева М.И. 50.5 KB
  Цветаева М.И. 18921941 Марина Ивановна Цветаева 18921941 писать стихи начала рано. Первая ее книга Вечерний альбом вышла в 1910 году. В дореволюционном творчестве Цветаевой можно выделить два периода: период ранних стихов полудетских девичьих признаний сборник...
13509. Пушкин А.С. 93 KB
  Пушкин А.С. Александр Сергеевич Пушкин родился 6 июня по старому стилю 26 мая 1799 года в Москве в небогатой дворянской семье однако числившую в предках и бояр времен чуть ли не Александра Невского и царского арапа Абрама Петровича Ганнибала. 19 октября 1811 г
13510. ЕВТУШЕНКО Е.А. 131 KB
  ЕВТУШЕНКО Е.А. 1932 р. Родился 18 июля на станции Зима Красноярской области. Его отец был геологом но всю жизнь писал стихи и научил сына любить поэзию. Когда семья переехала в Москву будущий поэт во время учебы в школе занимался в поэтической студии Дворца пионеров...
13511. Шекспир Уильям 78.5 KB
  Шекспир Уильям 1564-1616 Шекспир Уильям английский драматург и поэт. Родился 23 апреля 1564 г. в г. СтратфордонЭйвон в семье ремесленника и торговца. В 18 лет Шекспир женился на дочери соседапомещика а в 1857 г. вместе с женой переселился в Лондон где с конца 1580х годов р
13512. Гомер (Homeros) 75.5 KB
  Гомер Гомер Homeros греческий поэт согласно древней традиции автор Илиады {Ilias и Одиссеи Odysseia двух больших эпопей открывающих историю европейской литературы. С XVIII в. в науке идет дискуссия как относительно авторства так и относительно истории создания Илиады и Од...
13513. Анна Ахматова 27.5 KB
  Анна Ахматова 1889-1966 Анна Ахматова псевдоним Горенко Анны Андреевны; 1889-1966 первое стихотворение по ее признанию написала в 11 лет в печати впервые выступила в 1907 году. Ее первый поэтический сборник Вечер вышел в 1912 году. Анна Ахматова принадлежала к группе а...