Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра безопасности информационных систем (БИС)
Отчет по лабораторной работе №3
По дисциплине «Безопасность систем баз данных»
Тема ПО «Деятельность магазина»
Студент гр.731-2
__________Батаев А.С.
«__» _____2023
Принял:
Мл. науч. сотрудник
__________ ________ Перминов П.В.
«__» _____2023
Томск 2023
Введение
Цель работы: изучение основных особенностей создания приложения для работы со связанными таблицами базы данных в Microsoft Visual Studio для своей предметной области.
2 Ход работы
Были обработаны исключения в программе, возникающие при некорректной работе с данными, результаты обработки изображены на рисунках 1.1 - 1.3. Листинг программы представлен в Приложении.
Рисунок 2.1 – Повторяющийся код сотрудника
Рисунок 2.2 – Пустое значение
Были реализованы поиск и фильтрация информации по вводу пользователем данных, которые изображены на рисунке 2.3, 2.4 Листинг программы представлен в Приложении.
Рисунок 2.3 – Поиск данных
Рисунок 2.4 – Фильтрация данных на фамилию
Была создана подстановочная колонка в форме Клиенты, которая изображена на рисунке 2.5.
Рисунок 2.5 – Подстановочная таблица
Заключение
В ходе работы были изучены основные особенности создания приложения для работы со связанными таблицами базы данных в Microsoft Visual Studio для предметной области «Деятельность магазина».
Приложение а (обязательное)
using System;
using System.Data;
using System.Windows.Forms;
namespace БСБД_Магазин
{
public partial class FormListTransfer : Form
{
public FormListTransfer()
{
InitializeComponent();
}
private void списокСотрудниковBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.списокСотрудниковBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.shopDataSet);
}
private void FormListTransfer_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "shopDataSet.Персонал". При необходимости она может быть перемещена или удалена.
this.персоналTableAdapter.Fill(this.shopDataSet.Персонал);
// TODO: данная строка кода позволяет загрузить данные в таблицу "shopDataSet.СписокСотрудников". При необходимости она может быть перемещена или удалена.
this.списокСотрудниковTableAdapter.Fill(this.shopDataSet.СписокСотрудников);
}
string GetSelectedFieldName()
{
return
персоналDataGridView.Columns[персоналDataGridView.CurrentCell.ColumnIndex
].DataPropertyName;
}
private void filterButton_Click(object sender, EventArgs e)
{
if (filter.Text == "")
{
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
int indexPos;
try
{
indexPos =
персоналBindingSource.Find(GetSelectedFieldName(),
filter.Text);
}
catch (Exception err)
{
MessageBox.Show("Ошибка поиска \n" + err.Message);
return;
}
if (indexPos > -1)
персоналBindingSource.Position = indexPos;
else
{
MessageBox.Show("Таких сотрудников нет", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
персоналBindingSource.Position = 0;
}
}
private void checkBoxFind_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxFind.Checked)
{
if (filter.Text == "")
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
else
try
{
персоналBindingSource.Filter =
GetSelectedFieldName() + "='" + filter.Text + "'";
}
catch (Exception err)
{
MessageBox.Show("Ошибка фильтрации \n" +
err.Message);
}
}
else
персоналBindingSource.Filter = "";
if (персоналBindingSource.Count == 0)
{
MessageBox.Show("Нет таких");
персоналBindingSource.Filter = "";
checkBoxFind.Checked = false;
}
}
private void buttonshop_Click(object sender, EventArgs e)
{
int id = -1;
if (((DataRowView)списокСотрудниковBindingSource.Current)
["код_магазина"].ToString() != "")
{
id = (int)(((DataRowView)списокСотрудниковBindingSource.Current)
["код_магазина"]);
}
id = shop.fs.ShowSelectForm(id);
if (id >= 0)
{
MessageBox.Show(id.ToString());
((DataRowView)списокСотрудниковBindingSource.Current)["код_магазина"]
= id;
списокСотрудниковBindingSource.EndEdit();
}
}
private void персоналDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
MessageBox.Show("Ошибка в веденном значении", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}