- •Создание приложения в 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;
using bsbd2.Properties;
namespace bsbd2
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = MessageBox.Show("Вы хотите закрыть программу?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes;
}
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("(C)ТУСУР, КИБЭВС, Климанов Михаил Денисович, группа 739-1, 2021", "О программе", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void спортивные соревнованияToolStripMenuItem_Click(object sender, EventArgs e)
{
Спортивные соревнованияf1 = new Спортивные соревнования();
f1.Show();
}
private void тренерToolStripMenuItem_Click(object sender, EventArgs e)
{
Главный тренерf1 = new Главный тренер ();
f1.Show();
}
private void участникиToolStripMenuItem_Click(object sender, EventArgs e)
{
Результаты соревнованийf1 = new Результаты соревнований ();
f1.Show();
}
private void соревнованияToolStripMenuItem_Click(object sender, EventArgs e)
{
Результаты соревнованийf1 = new Результаты соревнований();
f1.Show();
}
private void участникиToolStripMenuItem_Click(object sender, EventArgs e)
{
Результаты соревнованийf1 = new Результаты соревнований();
f1.Show();
}
private void Main_Load(object sender, EventArgs e)
{
}
private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
{
Settings.Default.Save();
}
}
}
Приложение Б
(обязательное)
Полный листинг формы «Список_агентов»
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 bsbd2
{
public partial class Список_агентов : Form
{
public Список_агентов()
{
InitializeComponent();
}
private void агентBindingNavigatorSaveItem_Click_1(object sender, EventArgs e)
{
this.Validate();
this.агентBindingSource.EndEdit();
this.tableAdapterManager1.UpdateAll(this.агентство_недвижимостиDataSet1);
}
private void Список_агентов_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "агентство_недвижимостиDataSet1.Агент". При необходимости она может быть перемещена или удалена.
this.агентTableAdapter1.Fill(this.агентство_недвижимостиDataSet1.Агент);
}
private static Список_агентов f;
public static Список_агентов fw
{
get
{
if (f == null || f.IsDisposed) f = new Список_агентов();
return f;
}
}
public void ShowForm()
{
Show();
Activate();
}
private void агентDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
string GetSelectedFieldName()
{
return
агентDataGridView.Columns[агентDataGridView.CurrentCell.ColumnIndex
].DataPropertyName;
}
private void toolStripButtonFind_Click(object sender, EventArgs e)
{
if (toolStripTextBoxFind.Text == "")
{
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
int indexPos;
try
{
indexPos =
агентBindingSource.Find(GetSelectedFieldName(),
toolStripTextBoxFind.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 (toolStripTextBoxFind.Text == "")
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
else
try
{
агентBindingSource.Filter =
GetSelectedFieldName() + "='" + toolStripTextBoxFind.Text + "'";
}
catch (Exception err)
{
MessageBox.Show("Ошибка фильтрации \n" +
err.Message);
}
}
else
агентBindingSource.Filter = "";
if (агентBindingSource.Count == 0)
{
MessageBox.Show("Нет таких"); агентBindingSource.Filter = "";
checkBoxFind.Checked = false;
}
}
}
}
Приложение В
(обязательное)
Полный листинг формы «Список_клиентов»
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 bsbd2
{
public partial class Список_клиентов : Form
{
public Список_клиентов()
{
InitializeComponent();
}
private void клиентBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.клиентBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.агентство_недвижимостиDataSet);
}
private void Список_клиентов_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "агентство_недвижимостиDataSet1.Клиент". При необходимости она может быть перемещена или удалена.
this.клиентTableAdapter1.Fill(this.агентство_недвижимостиDataSet1.Клиент);
}
private static Список_клиентов f;
public static Список_клиентов fw
{
get
{
if (f == null || f.IsDisposed) f = new Список_клиентов();
return f;
}
}
public void ShowForm()
{
Show();
Activate();
}
private void клиентDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
string GetSelectedFieldName()
{
return
клиентDataGridView.Columns[клиентDataGridView.CurrentCell.ColumnIndex
].DataPropertyName;
}
private void toolStripButtonFind_Click(object sender, EventArgs e)
{
if (toolStripTextBoxFind.Text == "")
{
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
int indexPos;
try
{
indexPos =
клиентBindingSource.Find(GetSelectedFieldName(),
toolStripTextBoxFind.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 (toolStripTextBoxFind.Text == "")
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
else
try
{
клиентBindingSource.Filter =
GetSelectedFieldName() + "='" + toolStripTextBoxFind.Text + "'";
}
catch (Exception err)
{
MessageBox.Show("Ошибка фильтрации \n" +
err.Message);
}
}
else
клиентBindingSource.Filter = "";
if (клиентBindingSource.Count == 0)
{
MessageBox.Show("Нет таких"); клиентBindingSource.Filter = "";
checkBoxFind.Checked = false;
}
}
}
}
Приложение Г
(обязательное)
Полный листинг формы «Список_юристов»
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 bsbd2
{
public partial class Список_юрстов : Form
{
public Список_юрстов()
{
InitializeComponent();
}
private void юристBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.юристBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.агентство_недвижимостиDataSet);
}
private void Список_юрстов_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "агентство_недвижимостиDataSet1.Юрист". При необходимости она может быть перемещена или удалена.
this.юристTableAdapter1.Fill(this.агентство_недвижимостиDataSet1.Юрист);
}
private void юристDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private static Список_юрстов f;
public static Список_юрстов fw
{
get
{
if (f == null || f.IsDisposed) f = new Список_юрстов();
return f;
}
}
public void ShowForm()
{
Show();
Activate();
}
string GetSelectedFieldName()
{
return
юристDataGridView.Columns[агентDataGridView.CurrentCell.ColumnIndex
].DataPropertyName;
}
private void toolStripButtonFind_Click(object sender, EventArgs e)
{
if (toolStripTextBoxFind.Text == "")
{
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
int indexPos;
try
{
indexPos =
юристBindingSource.Find(GetSelectedFieldName(),
toolStripTextBoxFind.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 (toolStripTextBoxFind.Text == "")
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
else
try
{
юристBindingSource.Filter =
GetSelectedFieldName() + "='" + toolStripTextBoxFind.Text + "'";
}
catch (Exception err)
{
MessageBox.Show("Ошибка фильтрации \n" +
err.Message);
}
}
else
юристBindingSource.Filter = "";
if (юристBindingSource.Count == 0)
{
MessageBox.Show("Нет таких"); юристBindingSource.Filter = "";
checkBoxFind.Checked = false;
}
}
}
}
Приложение Д
(обязательное)
Полный листинг формы «Список_договоров»
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 bsbd2
{
public partial class Список_договоров : Form
{
public Список_договоров()
{
InitializeComponent();
}
private void договорBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.договорBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.агентство_недвижимостиDataSet1);
}
private void Список_договоров_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "агентство_недвижимостиDataSet1.Договор". При необходимости она может быть перемещена или удалена.
this.договорTableAdapter.Fill(this.агентство_недвижимостиDataSet1.Договор);
}
string GetSelectedFieldName()
{
return
договорDataGridView.Columns[агентDataGridView.CurrentCell.ColumnIndex
].DataPropertyName;
}
private void toolStripButtonFind_Click(object sender, EventArgs e)
{
if (toolStripTextBoxFind.Text == "")
{
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
int indexPos;
try
{
indexPos =
договорBindingSource.Find(GetSelectedFieldName(),
toolStripTextBoxFind.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 (toolStripTextBoxFind.Text == "")
MessageBox.Show("Вы ничего не задали", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Information);
else
try
{
договорBindingSource.Filter =
GetSelectedFieldName() + "='" + toolStripTextBoxFind.Text + "'";
}
catch (Exception err)
{
MessageBox.Show("Ошибка фильтрации \n" +
err.Message);
}
}
else
договорBindingSource.Filter = "";
if (договорBindingSource.Count == 0)
{
MessageBox.Show("Нет таких"); договорBindingSource.Filter = "";
checkBoxFind.Checked = false;
}
}
}
}
}
Приложение E
(обязательное)
Полный листинг формы «Список_недвижимости»
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 bsbd2
{
public partial class Список_недвижимости : Form
{
public Список_недвижимости()
{
InitializeComponent();
}
private void недвижимостьBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.недвижимостьBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.агентство_недвижимостиDataSet1);
}
private void Список_недвижимости_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "агентство_недвижимостиDataSet1.Недвижимость". При необходимости она может быть перемещена или удалена.
this.недвижимостьTableAdapter.Fill(this.агентство_недвижимостиDataSet1.Недвижимость);
}
private void domainUpDown1_SelectedItemChanged(object sender, EventArgs e)
{
}
}
}