Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР3БСБД

.pdf
Скачиваний:
2
Добавлен:
16.03.2023
Размер:
752.48 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра безопасности информационных систем (БИС)

Отчет по лабораторной работе №3

По дисциплине «Безопасность систем баз данных» Тема ПО «Деятельность магазина»

Студент гр.731-2

__________Батаев А.С.

«__» _____2023

Принял:

Мл. науч. сотрудник

__________ ________ Перминов П.В. «__» _____2023

Томск 2023

Введение

Цель работы: изучение основных особенностей создания приложения для работы со связанными таблицами базы данных в Microsoft Visual Studio

для своей предметной области.

2

2 ХОД РАБОТЫ

Были обработаны исключения в программе, возникающие при некорректной работе с данными, результаты обработки изображены на рисунках 1.1 - 1.3. Листинг программы представлен в Приложении.

Рисунок 2.1 – Повторяющийся код сотрудника

Рисунок 2.2 – Пустое значение

Были реализованы поиск и фильтрация информации по вводу пользователем данных, которые изображены на рисунке 2.3, 2.4 Листинг программы представлен в Приложении.

3

Рисунок 2.3 – Поиск данных

Рисунок 2.4 – Фильтрация данных на фамилию

Была создана подстановочная колонка в форме Клиенты, которая изображена на рисунке 2.5.

Рисунок 2.5 – Подстановочная таблица

4

Заключение

В ходе работы были изучены основные особенности создания приложения для работы со связанными таблицами базы данных в Microsoft Visual Studio для предметной области «Деятельность магазина».

5

Приложение А (обязательное)

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;

6

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)

{

7

MessageBox.Show("Ошибка в веденном знацении", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

8

Приложение Б (обязательное)

using System; using System.Data;

using System.Windows.Forms;

namespace БСБД_Магазин

{

public partial class shop : Form

{

public shop()

{

InitializeComponent();

}

static shop f;

static public shop fs

{

get

{

if (f == null || f.IsDisposed) f = new shop(); return f;

}

}

public void ShowForm()

{

Show();

Activate();

}

private void магазинСкладBindingNavigatorSaveItem_Click(object sender, EventArgs e)

{

this.Validate(); this.магазинСкладBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.shopDataSet);

}

int idCurrent = -1;

public int ShowSelectForm(int id)

{

idCurrent = id;

if (ShowDialog() == DialogResult.OK)

return (int)((DataRowView)магазинСкладBindingSource.Current) ["код_магазина"];

else

return -1;

}

private void shop_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в табличу "shopDataSet.МагазинСклад". При необходимости она может быть перемещена или удалена.

this.магазинСкладTableAdapter.Fill(this.shopDataSet.МагазинСклад);

}

private void shop_Shown(object sender, EventArgs e)

{

магазинСкладBindingSource.Position = магазинСкладBindingSource.Find("код_магазина", idCurrent);

}

}

}

9

Приложение В (обязательное)

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; using БСБД_Магазин.Properties;

namespace БСБД_Магазин

{

public partial class FormMain : Form

{

public FormMain()

{

InitializeComponent();

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("(C)ТУСУР,БИС,Батаев Александр Сергеевиц,гр.731-2,2023", "О программе",

MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private void выходToolStripMenuItem1_Click(object sender, EventArgs e)

{

Close();

}

private void FormMain_FormClosing(object sender, FormClosingEventArgs e)

{

e.Cancel = MessageBox.Show("Вы хотите закрыть программу?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes;

}

private void FormMain_FormClosed(object sender, FormClosedEventArgs e)

{

Settings.Default.Save();

}

private void toolStripButton3_Click(object sender, EventArgs e)

{

EmployeesList.fs.ShowForm();

}

private void toolStripButton4_Click(object sender, EventArgs e)

{

Transfer.fs.ShowForm();

}

private void toolStripButton5_Click(object sender, EventArgs e)

{

ProductInfo.fs.ShowForm();

}

private void toolStripButton6_Click(object sender, EventArgs e)

10

Соседние файлы в предмете Безопасность систем баз данных