
4 семестр / Болтушкин Л.С., группа 712-2, лабораторная 2
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
СОЗДАНИЕ ПРОСТОГО ПРИЛОЖЕНИЯ ДЛЯ РАБОТЫ С БАЗАМИ ДАННЫХ В MICROSOFT VISUAL STUDIO
Отчет по лабораторной работе №2
по дисциплине «Безопасность систем баз данных»
Студент гр. 712-2 ___________ Л.С. Болтушкин __________
Руководитель Преподаватель кафедры КИБЭВС
_______ __________ З.М. Медведев
__________
Томск 2024
Введение
Целью данной лабораторной работы является изучение основных компонент для работы с данными в базах данных в Microsoft Visual Studio и создание простого приложения в Microsoft Visual Studio для работы с базой данных для своей предметной области.
Разрабатываемое приложение предназначено для работы с базой данных для составления договора о страховании. Структура базы данных, для соревнований по футболу приведена на рисунке 1.
Рисунок 1 – Структура базы данных
1 Ход работы
При помощи дизайнера графических форм можно добавлять в приложение различные элементы управления, и он будет автоматически генерировать код для этих элементов (по умолчанию файл с главной формой называется Form1.cs). В Visual Studio классы Windows-форм формируются в двух файлах: Form1.cs и Form1.Designer.cs.
В файле Form1.Deigner.cs присутствует код, сгенерированный дизайнером, а в файле Form1.cs – присутствует код инициализации класса и пользовательские члены класса (поля, свойства, методы, события и др.)
Для разметки окон приложения в соответствии с требованиями пользователя необходимо изменить свойства класса Form1. Это можно сделать с помощью дизайнера окон (Form Designer), путем изменения свойств в окне Свойства (Properties) или в коде программы.
На рисунке 1.1 представлен вид проекта в Visual Studio.
Рисунок 1.1 – Вид проекта в Visual Studio
Главная форма отображается после запуска программы. Для дальнейшей работы изменим имя главной формы, а также текст, который отображается при открытии формы через Text и добавим изображение на задний фон через BackgroundImage (рисунок 1.2).
Рисунок 1.2 – Изменение имени и заднего фона главной формы
Результат изменений показан на рисунке 1.3.
Рисунок 1.3 – Обновление главной формы
Для создания главного меню используется компонент MenuStrip с вкладки ToolBox. Это невизуальный компонент при запуске приложения. При запуске приложения пользователи видят не сам компонент, а меню, сгенерирование им. (рисунок 1.4).
Рисунок 1.4 – Компонент MenuStrip
Также для пунктов можно задать пиктограммы и горячие клавиши, данное действие показано на рисунке 1.5.
Рисунок 1.5 – Горячие клавиши
При нажатии «О программе» должно выводиться сообщение, в котором указаны сведения о данном приложении (рисунок 1.6). Для этого необходимо прописать в коде:
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("(C) ТУСУР, КИБЭВС, Болтушкин Леонид Станиславович, группа 712-2, 2024г.", "О программе", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Рисунок 1.6 – Информационное сообщение «О программе»
Для кнопки выхода используется следующий код:
private void выходToolStripMenuItem_Click_1(object sender, EventArgs e)
{
Close();
}
Для того, чтобы программа позволяла работать с данными базы данных, необходимо подключиться к базе данных в приложении (рисунок 1.7).
Рисунок 1.7 – Выбор «Базы данных»
В меню «Средства» выберем подключиться к базе данных. Далее укажем имя сервера, режим необходимой аутентификации, имя базы данных (рисунок 1.8).
Рисунок 1.8 – Добавление подключения
В результате будет создан класс InsuranceDataSet, который добавляется в решение проекта, представленный на рисунке 1.9.
Рисунок 1.9 – Класс InsuaranceDataSet
Таким образом, нами сформирован набор DataSet, являющийся источником данных в приложении (рисунок 1.10).
Рисунок 1.10 – Сформированный источник данных
Если нажать правую кнопку мыши на сформированном наборе данных и выбрать «Изменить набор данных в конструктор», то мы сможем просмотреть дизайнер сформированного набора данных и еще раз убедиться, что все связи правильно сделаны (рисунок 1.11).
Рисунок 1.11 – Дизайнер сформированного набора данных
Как было сказано ранее, объекты типа DataAdapter позволяют проводить основные операции в наборе данных соответствующих объектов БД.
TableAdapter позволяет работать с данными в наборе данных соответствующих таблиц БД через соответствующие свойства:
1) SelectCommand — выбрать данные. Метод Fill — заполняет данными набор данных соответствующих таблиц БД. Он реализует выборку данных из соответствующих таблиц БД.
2) InsertCommand – добавить данные.
3) DeleteCommand — удалить данные.
4) UpdateCommand — изменить данные
Привязывать элементы пользовательского интерфейса можно не только к таблично представленным данным. Практически любая структура данных может выступить в роли их источника – обычные объекты, массивы и т.д.
Для отображения информации из БД на элементах управления Windows Forms необходимо осуществить их заполнение из соответствующих столбцов и строк таблиц DataSet. Это можно сделать путем написания специального кода, который предназначен для заполнения соответствующих элементов управления или использовать механизм привязки данных к пользовательским интерфейсам .NET.
Windows Forms позволяют отображать данные путем привязки их элементов управления к источникам данных. Привязка данных обычно используется для отображения результатов поиска, детализации сводок, генерации отчетов и ввода данных.
Существует два типа привязки данных: простая и сложная. В случае простой привязки данных элемент управления привязывается к отдельному элементу данных. Простая привязка, в основном, используется с такими элементами управления, как поле ввода (TextBox), надпись (Lable) и др. При сложной привязке данных элемент управления привязывается более чем к одному элементу данных - обычно к одному или нескольким столбцам в нескольких строках результирующего набора строк. К элементам управления, поддерживающим сложную привязку данных, относятся список (ListBox), выпадающий список (ComboBox), список данных (DataList) и табличный элемент (DataGridView).
В технологии привязки элементов управления Windows Forms используется абстрактный класс BindingManagerBase. Данный класс синхронизирует все элементы управления Windows Forms (т. е. объекты Binding), привязанные к одному источнику данных, позволяя отображать информацию об объекте в источнике данных - например, о строке в локальной таблице.
Класс BindingContext используется для создания экземпляра объекта BindingManagerBase, и возвращается при этом объект CurrencyManager или PropertyManager в зависимости от типа источника данных.
Компонент BindingSource является универсальным связующим звеном в Windows Forms. Он существенно облегчает задачу привязки данных.
Компонент BindingSource можно рассматривать как типизированную коллекцию элементов, при этом тип источника данных может быть задан различными способами.
Компонент BindingSource достаточно сложен и предназначен для решения различных задач. Он может применяться как для простой, так и для сложной привязки данных, в качестве одиночного или списочного источника данных, поддерживает фильтрацию, уведомления при изменении списка объектов, транзакционное добавление новых элементов, расширенную поддержку во время разработки и многое другое. BindingSource представляет собой промежуточный слой между источником данных и соответствующим элементом управления (controlом), к нему привязанным.
Допустим, у нас есть Label, TextBox и ComboBox, привязанные к таблице (DataTable). Предположим, что для обновления информации был создан и заполнен данными из БД новый DataTable. Встает несложная, в общем то, задача – сменить у всех трех controlов источник данных. Теперь можно изменить свойства DataSource/DataMember единственного BindingSource, а не у всех controlов.
На рисунках 1.12 – 1.17 представлены формы реализации таблиц базы данных в виде таблиц и отдельные компоненты.
Рисунок 1.12 – Форма «Главный тренер»
Рисунок 1.13 – Форма «Участники»
Рисунок 1.14 – Форма «Команда»
Рисунок 1.15 – Форма «Соревнования»
Форма 1.16 – Форма «Результаты соревнований»
Форма 1.17 – Форма «Стадион»
Заключение
В данной лабораторной работе были изучены основные компоненты для работы с данными в базах данных в Microsoft Visual Studio, а также создано простое приложение для работы с базой данных для предметной области «Соревнования по футболу».
Приложение А
(обязательное)
Полный листинг формы «Main»
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Laba2bsbd
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = MessageBox.Show("Вы хотите закрыть программу?","Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes;
}
private void главныйТренерToolStripMenuItem_Click_1(object sender, EventArgs e)
{
Form Glavtrener = new Glavtrener();
Glavtrener.Show();
}
private void участникиToolStripMenuItem_Click(object sender, EventArgs e)
{
Form uchastnikcs = new uchastnikcs();
uchastnikcs.Show();
}
private void командаToolStripMenuItem_Click(object sender, EventArgs e)
{
Form komanda = new komanda();
komanda.Show();
}
private void соревнованияToolStripMenuItem_Click(object sender, EventArgs e)
{
Form sorev = new sorev();
sorev.Show();
}
private void результатыСоревнованийToolStripMenuItem_Click(object sender, EventArgs e)
{
Form result = new result();
result.Show();
}
private void стадионToolStripMenuItem_Click(object sender, EventArgs e)
{
Form stadion = new stadion();
stadion.Show();
}
private void выходToolStripMenuItem_Click_1(object sender, EventArgs e)
{
Close();
}
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("(C) ТУСУР, КИБЭВС, Болтушкин Леонид Станиславович, группа 712-2, 2024г.", "О программе", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}