Главная страница

Курсовой проект. Цель изучить основы работы с субд, а также их взаимодействие с клиентскими приложениями. Задание


Скачать 309.31 Kb.
НазваниеЦель изучить основы работы с субд, а также их взаимодействие с клиентскими приложениями. Задание
Дата09.01.2021
Размер309.31 Kb.
Формат файлаdocx
Имя файлаКурсовой проект.docx
ТипРеферат
#166626

Содержание


Введение 2

Разработка базы данных 3

Разработка клиентского приложения 5

Заключение 9

Программный код 10


Введение


Цель: изучить основы работы с СУБД, а также их взаимодействие с клиентскими приложениями.

Задание: необходимо разработать программу с графическим интерфейсом на языке программирования С# или С/С++ для поддержки базы данных, разработанной в курсе «Базы данных». Программа должна обеспечивать добавление, редактирование, удаление и визуализацию данных, хранимых в БД проекта.

В рамках данной работы используется база данных SQL, а также MS SQL Server Management Studio. Для реализации клиентского приложения используется С#, тип проекта Windows Forms.

Разработка базы данных

Создадим таблицы otdel и people в БД



Рис. 1. Таблицы БД

Создадим необходимые хранимые процедуры, для обеспечения взаимодействия БД со сторонними приложениями.



Рис. 2. Хранимые процедуры


Основными процедурами для таблиц являются:

  • удаление записей;

  • добавление записей;

  • обновление записи;

  • получение записи;

  • получения всех записей;


Наполним таблицы данными:



Рис. 3. Пример данных в таблицах в БД

Разработка клиентского приложения


В рамках данной работы, на языке С# были разработаны классы для работы с БД OtdelSQL, PeopleSQL.



Рис. 4.



Рис. 5.

Для каждого класса реализованы обертки для хранимых процедур БД, а именно:

  • добавление;

  • обновление;

  • удаление;

  • получение записи по Id;

  • получение всех записей.


Для взаимодействия с пользовательским интерфейсом реализованы элементы паттерна «Фасад».



Рис. 6.



Рис. 7.



Рис. 8.



Рис. 9.
Экранная форма программы:



Рис. 10.

Заключение


Изучены основы работы с СУБД, а также их взаимодействие с клиентскими приложениями. Разработана программа с графическим интерфейсом на языке программирования С# для поддержки базы данных. Программа обеспечивает добавление, редактирование, удаление и визуализацию данных, хранимых в БД проекта.

Программный код



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 Database;

using DatabaseFasade;
namespace DBMS_Lab3

{

public partial class Form1 : Form

{

int CurrentRowOtdel;

int CurrentRowPeople;
public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

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

this.otdelTableAdapter.Fill(this.dB_OTD_KADROV_QUERYDataSet.otdel);

updateDgvOtdel();

updateDgvPeople();

UpdateCurrentOtdelName();

UpdateCurrentFioName();
}

private void updateDgvOtdel()

{

FasadeOtdel fasOtdel = new FasadeOtdel();

List otdelList = fasOtdel.getOtdelList();

dgvOtdelList.Rows.Clear();

for (int i = 0; i < otdelList.Count; i++)

dgvOtdelList.Rows.Add(otdelList[i]);

if (dgvOtdelList.Rows.Count > 0)

{

CurrentRowOtdel = 0;

dgvOtdelList.Rows[CurrentRowOtdel].Selected = true;

}

else

{

dgvOtdelList.ClearSelection();

CurrentRowOtdel = -1;

}

}
private void updateDgvPeople()

{

FasadePeople fasPeople = new FasadePeople();

List peopleList = fasPeople.getPeopleList();

dgvPeopleList.Rows.Clear();
for (int i = 0; i < peopleList.Count; i++)

dgvPeopleList.Rows.Add(peopleList[i]);
if (dgvPeopleList.Rows.Count > 0)

{

CurrentRowPeople = 0;

dgvPeopleList.Rows[CurrentRowPeople].Selected = true;

}

else

{

dgvPeopleList.ClearSelection();

CurrentRowPeople = -1;

}

}
private void dgvOtdelList_CellClick(object sender, DataGridViewCellEventArgs e)

{

CurrentRowOtdel = e.RowIndex;

UpdateCurrentOtdelName();

}
void UpdateCurrentOtdelName()

{

if (CurrentRowOtdel >= 0)

otdelNameTB.Text = dgvOtdelList.Rows[CurrentRowOtdel].Cells["Name"].Value.ToString();

else

otdelNameTB.Text = string.Empty;

}

void UpdateCurrentFioName()

{

if (CurrentRowPeople >= 0)

EditFioTb.Text = dgvPeopleList.Rows[CurrentRowPeople].Cells["FIO"].Value.ToString();

else

EditFioTb.Text = string.Empty;

}

private void AddOtdelBtn_Click(object sender, EventArgs e)

{

FasadeOtdel fasadeOtdel = new FasadeOtdel();

fasadeOtdel.addOtdel(newOtdelNameTB.Text.Trim());

updateDgvOtdel();

}
private void ChangeOtdelNameBtn_Click(object sender, EventArgs e)

{

int id;

string name;
if (CurrentRowOtdel >= 0)

{

name = otdelNameTB.Text;

id = Convert.ToInt32(dgvOtdelList.Rows[CurrentRowOtdel].Cells["Id"].Value.ToString());

}

else

{

MessageBox.Show("Выберите строку!");

return;

}

FasadeOtdel fasadeOtdel = new FasadeOtdel();

fasadeOtdel.updateOtdelById(id, name);

updateDgvOtdel();

UpdateCurrentOtdelName();

}
private void DeleteOtdelBtn_Click(object sender, EventArgs e)

{

int id;

if (CurrentRowOtdel >= 0)

{

id = Convert.ToInt32(dgvOtdelList.Rows[CurrentRowOtdel].Cells["Id"].Value.ToString());

}

else

{

MessageBox.Show("Выберите строку!");

return;

}

FasadeOtdel fasadeOtdel = new FasadeOtdel();

fasadeOtdel.deleteOtdel(id);

updateDgvOtdel();

UpdateCurrentOtdelName();

}
private void dgvPeopleList_CellClick(object sender, DataGridViewCellEventArgs e)

{

CurrentRowPeople = e.RowIndex;

UpdateCurrentFioName();

}
private void AddPeopleBtn_Click(object sender, EventArgs e)

{

FasadePeople fasadePeople = new FasadePeople();

fasadePeople.addPeople(AddFioTb.Text.Trim());

updateDgvPeople();

}
private void EditPeopleBtn_Click(object sender, EventArgs e)

{

int id;

string FIO;
if (CurrentRowPeople >= 0)

{

FIO = EditFioTb.Text;

id = Convert.ToInt32(dgvPeopleList.Rows[CurrentRowPeople].Cells["ident"].Value.ToString());

}

else

{

MessageBox.Show("Выберите строку!");

return;

}
FasadePeople fasadePeople = new FasadePeople();

fasadePeople.updatePeopleById(id, FIO);

updateDgvPeople();

UpdateCurrentFioName();

}
private void DeleteBtn_Click(object sender, EventArgs e)

{

int id;

if (CurrentRowPeople >= 0)

{

id = Convert.ToInt32(dgvPeopleList.Rows[CurrentRowPeople].Cells["ident"].Value.ToString());

}

else

{

MessageBox.Show("Выберите строку!");

return;

}

FasadePeople fasadePeople = new FasadePeople();

fasadePeople.deletePeople(id);

updateDgvPeople();

UpdateCurrentFioName();

}

}

}




написать администратору сайта