
- •Тема 5.6. Технология работы с данными в среде Visual Studio .Net
- •5.6.1. Создание приложений для обработки данных в среде Visual Studio .Net
- •5.6.2. Основные понятия модели доступа к данным – ado.Net
- •5.6.3. Примеры разработки приложений для работы с базами данных субд Access
- •5.6.3.1. Пример создания проекта «Пропуски» для работы с бд «DataBase1»
- •5.6.3.2. Пример создания проекта «ОценкиСтудентов» для работы с бд «DataBase2»
- •5.6.4. Задачи для самостоятельного решения по теме «Технология работы с данными в среде Visual Studio .Net»
- •5.6.5. Тестовые задания по теме «Технология работы с данными в среде Visual Studio .Net»
- •Тема 5.6. Технология работы с данными в среде Visual Studio .Net Страница 270
5.6.3.2. Пример создания проекта «ОценкиСтудентов» для работы с бд «DataBase2»
Задание
В базу данных c именем «DataBase2» поступают сведения о студентах и оценках, полученные этими студентами по трем предметам на двух контрольных. Предположим, что данные хранятся в двух таблицах, одна из которых называется «Студенты», а другая «Оценки». Каждая запись обеих таблиц состоит из шести полей.
Структура таблицы «Студенты»: КодСтудента фамилия группа специальность курс
|
Структура таблицы «Оценки». КодСтудента дата информатика математика физика
|
Необходимо разработать документ, в котором должны быть отражены сведения о тех студентах, которые получили пятерок на второй контрольной больше, чем на первой.
Документ должен иметь заголовок, информацию о времени его создания, даты проведения контрольных, а также информацию обо всех студентах, повысивших успеваемость, с указанием групп и специальностей.
Создание базы данных «DataBase2»
Для построения таблиц СтудентыиОценкинеобходимо создать их структуру, которые будет иметь вид, приведенный на рис. 5.6.3-17 и 5.6.3-18.
Рис. 5.6.3-17
Рис. 5.6.3-18
Заполнение таблиц данными можно выполнить в режиме таблицы. После заполнения таблиц СТУДЕНТЫиОЦЕНКИпринимает вид, приведенный на рис.5.6.3-19 и 5.6.3-20.
Рис.5.6.3-19
Рис.5.6.3-20
Таблицы базы данных будут связаны по схеме «один ко многим» как на рис.5.6.3-21.
Рис. 5.6.3-21
Разработка приложения Windows для работы с БД Access «DataBase2»
Создание нового проекта.
Создать проект с именем ОценкиСтудентови двумя формами.
Создание интерфейса пользователей.
Создать интерфейса пользователей из двух форм, которые изображены на рис. 5.6.3-22 и 5.6.3.23.
Рис. 5.6.3-22
Рис. 5.6.3-23
Подключение набора данных приложения к базе данных DataBase2 СУБД Access и отображение их на форме.
Процедура подключения приложения Visual Studioк данным в базе данныхСУБД Access может быть упрощена за счет использованияМастера Настройки источников данных. После завершения работыМастераданные в окнеИсточники данных становятся доступными для перетаскивания на формы.
Для создания набора данных при помощи Мастера настройки источника данных
необходимо:
В элементе Данные главного меню выбрать командуПоказать источники данных ( Добавить новый источник данных).
В результате в среде разработки появится окно Мастер настройки источника данных.
Далее Мастер запрашивает тип базы данных, с которой будет производиться соединение – устанавливает соединение с данными, а затем создает в программе набор данных, который хранит выбранные таблицы и поля базы данных.
Результатом этого является то, что Мастероткрывает окноИсточник данных и заполняет его визуальным представлением каждого объекта базы данных, используемого в программе.
В окне Выбор источника данныхвыбратьБД, являющуюся источником данных – Файл базы данныхAccess, а затем нажать на кнопкуДалее.Мастер отобразит форму –Добавление подключения, которая помогает установить соединение с базой данных, создав строку, которая называетсяСвязывающей строкой
Связывающая строкасодержит информацию, которая требуетсяVisual Studioдля открытия и извлечения информации из файла базы данных. Она включает путь и имя файла, а также дополнительные данные, такие, как имя пользователя и пароль. По этой причине работа со связывающей строкой в окнеМастернастройки источника данныхдолжна выполняться очень аккуратно.
В окне Добавление подключениябазы данных выбратьAccess Database Fileи ввести путь к файлу базы данныхDataBase2.mdbили щелкнуть кнопкуОбзор, чтобы найти этот файл, а затем нажать кнопкуОК.
Снова появится диалоговое окно Добавление подключения, содержащее путь к базе данных.
Щелкнуть на кнопке Проверить подключение.
Visual Studioпопробует открыть указанный файл базы данных, используя связывающую строку, созданную мастером.
Щелкнуть на кнопке ОК, чтобы закрыть окно сообщения, а затем щелкнуть на кнопкеОК, чтобы закрыть диалоговое окноДобавление подключения.
Visual Studio снова отобразит окно Мастер настройки источника данных.
Чтобы отобразить готовую Связывающую строку, щелкните в диалоговом окне на знаке «плюс» (+) рядом с элементомConnection String.
Связывающая строка определяет провайдера.
Щелкните на кнопке Далее.
Мастер отобразит предупреждение, указывающее, что была выбрана новая локальная база данных.
Чтобы избежать создания дополнительной копии базы данных, щелкните на кнопке Нет,а затем на кнопкеДалее.
При этом Мастер настройки источника данных задаст такой вопрос о сохранении и строки подключения.
По умолчанию выбрана опция сохранения связывающей строки, а, в качестве имени строки в данном примере предлагается «DataBase2ConnectionString». Обычно следует сохранять эту строку в настроечном файле приложения по умолчанию, который доступен в окнеОбозреватель решений,так как в этом случае при изменении места расположения базы данных эту строку можно будет легко отредактировать без поиска ее в коде программы и последующей перекомпиляции приложения.
Чтобы сохранить связывающую строку, щелкнуть на кнопке Далее.
Затем будет выдан запрос на выбор подмножества объектов базы данных, которые будут использоваться в данном проекте, как показано в окне Мастер настройки источника данных, изображенном на рис. 5.6.3-24.
Рис. 5.6.3-24
Visual Studioпозволяет использовать не только одну таблицу, как в предыдущем примере, но и всю базу данных (в этом примере две таблицы), а также часть ее или объединение нескольких различных баз данных.
Чтобы добавить функциональность в приложение, то есть отобразить таблицы базы данных на форме необходимо проделать следующие шаги.
Перетащить на форму элемент управления DataGridView1.
Щелкнуть на треугольнике в правом верхнем углу элемента DataGridView1. Откроется контекстное окноDataGridView Задачи.
Раскрыть всплывающее окно Выбрать источник данных и внизу этого окна щелкнуть на ссылкеДобавить источник данных проекта....
После этого откроется окно Мастер настройки источника данных – Выбор типа источника данных,в котором надо выделить источник –База данныхи щелкнуть на кнопкеДалее.
В появившемся новом окнеМастер настройки источника данных – Выбор подключения базы данныхщелкнуть на кнопкеДалее.
В появившемся новом окнеМастер настройки источника данных – Выбор объектов базы данныхследует выбрать (поставит флажок) в квадратеТаблицы, а затем щелкнуть на кнопкеГотово.
Используя верхний треугольник элементов DataGridView2, необходимо выбрать для элементаDataGridView2таблицуСТУДЕНТЫ.
Для отображения на форме таблицы Оценкинеобходимо проделать аналогичные шаги сDataGridView2.
Первая форма будет иметь вид как на рис. 5.6.3-22.
Перетаскивание элементов из окна Источники данныхв форму автоматически добавляет нужный код для заполнения набора данных в обработчик событийForm1_Load( )(рис. 5.6.3-25).
-
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: Данная строка кода позволяет загрузить данные
'в таблицу "Database2DataSet.Оценки".
'При необходимости она может быть перемещена или удалена.
Me.ОценкиTableAdapter.Fill(Me.Database2DataSet.Оценки)
'TODO: Данная строка кода позволяет загрузить данные
'в таблицу "Database2DataSet.Студенты".
'При необходимости она может быть перемещена или удалена.
Me.СтудентыTableAdapter.Fill(Me.Database2DataSet.Студенты)
End Sub
Рис. 5.6.3-25
Редактирование, проверка и сохранение данных в приложении
После заполнения набора данных обычно производится добавление, редактирование или удаление данных перед их отправкой обратно источнику данных, другому процессу или приложению. Поскольку каждая запись в наборе данных представляется объектом DataRow, изменения набора данных выполняются посредством работы с отдельными строками.
В Windows Formsархитектура привязки к данным занимается отправкой изменений из элементов управления с привязкой к данным в набор данных, поэтому не требуется в явном виде обновлять набор данных при помощи собственного кода. Наборы данных поддерживают множество версий строк данных для нахождения изначальных записей в источнике данных. Перед выполнением обновления источника данных, возможно, потребуется проверить отдельные строки.
Изменение данных в DataSetпредставляет собой процесс управления фактическими данными в отдельных объектах, которые составляют набор данных. Изменение данных в таблицах данных подобно изменению данных в таблице любой базы данных – процесс может включать вставку, обновление и удаление записей таблицы.
Кроме изменения фактических данных, также можно запрашивать DataTableдля возвращения определенных строк данных, например, отдельных строк, определенных версий строк (исходные и предложенные), только измененных строк и строк, которые содержат ошибки.
Разработка программного кода приложения
Реализация модуля Modulе1представлена на рис. 5.6.3.26.
-
Module Module1
Public Sub vivod(ByVal t As String, ByVal B As TextBox)
B.Text = t
End Sub
Public Sub way(ByRef t As String, ByRef d As DataRowCollection, _
ByVal mark As DataRowCollection)
Dim i, j, k, p, n As Integer
n = d.Count
For i = 0 To 2 * (n - 1) Step 2
k = 0 : p = 0
For j = 2 To 4
If mark(i)(j) = 5 Then
k = k + 1
End If
If mark(i + 1)(j) = 5 Then
p = p + 1
End If
Next
If p > k Then
t = t & d(i \ 2)(1) & " группа " & d(i \ 2)(2) & _
" специальность: " _
& d(i \ 2)(3) & vbCrLf
End If
Next
End Sub
End Module
Рис. 5.6.3-26
C первой формой будет связан программный код, приведенный на рис. 5.6.3-27.
-
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
Form2.Show() 'Переход ко второй форме
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: Данная строка кода позволяет загрузить данные
'в таблицу "Database2DataSet.Оценки".
'При необходимости она может быть перемещена или удалена.
Me.ОценкиTableAdapter.Fill(Me.Database2DataSet.Оценки)
'TODO: Данная строка кода позволяет загрузить данные
'в таблицу "Database2DataSet.Студенты".
'При необходимости она может быть перемещена или удалена.
Me.СтудентыTableAdapter.Fill(Me.Database2DataSet.Студенты)
End Sub
End Class
Рис. 5.6.3-27
Со второй формой будет связан программный код, приведенный на рис. 5.6.3-28.
-
Public Class Form2
Public t As String
Private Sub Form2_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim d As DataRowCollection
Dim mark As DataRowCollection
d = Form1.Database2DataSet.Студенты.Rows
mark = Form1.Database2DataSet.Оценки.Rows
TextBox2.Text = "Контрольныe проводились: " & vbCrLf & _
"Первая :" & mark(0)(1) & vbCrLf
TextBox2.Text = TextBox2.Text & "Вторая: " & mark(1)(1)
t = ""
way(t, d, mark)
vivod(t, TextBox3)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide() : Form1.Show()
End Sub
End Class
Рис. 5.6.3-28
Текущая дата в документе этой формы определяется с помощью элемента DataTimePicker,который выбирается из панели элементов.
Процедура way( )реализует алгоритм, позволяющий выводить на экран документы, о студентах, которые повысили свою успеваемость на второй контрольной по сравнению с первой.
Выполнение приложения
Результат выполнения программы представлены на рис.5.6.3-29 и 5.6.3-30.
Рис.5.6.3-29
Рис.5.6.3-30
Анализ результатов работы приложения