30134

БАЗЫ ДАННЫХ

Лабораторная работа

Информатика, кибернетика и программирование

В начале работы следуют выбрать интересующего работника. После этого будут выведены данные о заданиях выбранного работника в соответствующую таблицу. При выборе конкретного задания выводятся данные о работниках.

Русский

2013-08-23

34.53 KB

1 чел.

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

Московский энергетический институт

Лабораторная работа №5

По дисциплине

 «Технология проектирования информационных систем»

Тема: «БАЗЫ ДАННЫХ»

Выполнил:  Сабитов Т.Ш.

Вариант:   10

Группа:      А-09-08

2013

База данных содержит 3 таблицы.

Первая таблица хранит информацию о работниках(номер, имя и номер отдела работника).

Вторая таблица хранит информацию о задачах(номер задачи, название, номер ответственного работника)

Третья таблица содержит информацию об отделах фирмы(название отдела, номер начальника отдела, номер отдела)

  1.  Создание базы данных

CREATE DATABSE 'LabaDB' CHARACTER SET utf8

  1.  Создание таблиц в новой базе

CREATE  TABLE `labadb`.`Workers` (

 `idWorker` INT NOT NULL ,

 `WorkerName` VARCHAR(45) NULL ,

 `idDepartment` INT NOT NULL ,

 PRIMARY KEY (`idWorker`) );

CREATE  TABLE `labadb`.`Tasks` (

 `idTask` INT NOT NULL ,

 `TaskName` VARCHAR(45) NULL ,

 `idWorker` INT NULL ,

 PRIMARY KEY (`idTask`) );

CREATE  TABLE `labadb`.`Departments` (

 `idDepartment` INT NOT NULL ,

 `DepartmentName` VARCHAR(45) NULL ,

 `idDepartmentHead` INT NOT NULL ,

 PRIMARY KEY (`idDepartment`) );

  1.  Связывание таблиц

alter table Workers

ADD FOREIGN KEY(idWorker)

REFERENCES Tasks(idWorker)

ON UPDATE CASCADE

ON DELETE CASCADE;

alter table Departments

ADD FOREIGN KEY(idDepartment)

REFERENCES Workers(idDepartment)

ON UPDATE CASCADE

ON DELETE CASCADE;

alter table Departments

ADD FOREIGN KEY(idDepartmentHead)

REFERENCES Workers(idDepartment)

ON UPDATE CASCADE

ON DELETE CASCADE;

  1.  Заполнение таблиц данными

insert into Workers values (0,"Ivanov",0);

insert into Workers values (1,"Petrov",0);

insert into Workers values (2,"Sidorov",0);

insert into Workers values (3,"Ivanov2",1);

insert into Workers values (4,"Petrov2",1);

insert into Workers values (5,"Sidorov2",1);

insert into Workers values (6,"Ivanov3",2);

insert into Workers values (7,"Petrov3",2);

insert into Workers values (8,"Sidorov3",2);

insert into Tasks values (0, "task1", 0);

insert into Tasks values (1, "task2", 2);

insert into Tasks values (2, "task3", 4);

insert into Tasks values (3, "task4", 6);

insert into Tasks values (4, "task5", 8);

insert into Tasks values (5, "task6", 1);

insert into Tasks values (6, "task7", 3);

insert into Tasks values (7, "task8", 5);

insert into Tasks values (8, "task9", 7);

insert into Tasks values (9, "task10", 0);

insert into Tasks values (10, "task11", 2);

insert into Tasks values (11, "task12", 4);

insert into Departments values (0, "Web software", 1);

insert into Departments values (1, "Economy", 3);

insert into Departments values (2, "System software", 5);

  1.  Процедуры и функции

create procedure update

 @id int

 @name vchar

as

  UPDATE Taskss SET TaskName=@name Where TaskId = @id

Go

create procedure delete_from_Tasks

 @name vchar

As

  Declare @TaskId int

  @TaskId = SELECT idTask FROM Taskss WHERE TaskName = @name LIMIT 1

  DELETE FROM Taskss WHERE idTask = @TaskId

Go

create function WorkerCount()

returns integer

as

begin  

 return  (SELECT count(distinct WorkerName) FROM Workers)

end

go

  1.  Описание программы

Программа предоставляет пользователю удобный интерфейс для просмотра и редактирования базы сотрудников и их заданий.

Как указано выше база содержит в себе данные о работниках, их заданиях и отделах фирмы.

В начале работы следуют выбрать интересующего работника. После этого будут выведены данные о заданиях выбранного работника в соответствующую таблицу. При выборе конкретного задания выводятся данные о работниках.

Программа позволяет удалять или редактировать конкретные записи в таблицах. Есть возможность добавить запись в базу через форму добавления записи.

Также программа позволяет просмотреть статистические данные.

  1.  Код программы

Далее приведен листинг основного модуля программы.

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 MySql.Data.MySqlClient;

using System.Xml;

namespace TPISClient

{

   public partial class Form1 : Form

   {

       bool EmptySelect = false;

       string Connect = "server=a-09-08.ru;user=encore;database=labadb;port=3306;password=asdfgh;";

       string temp, TCell0,TCell1;

       int OrderID;

       public Form1()

       {

           InitializeComponent();

      /*     string CommandText1 = "SELECT CoustumerName FROM coustumer";

           MySqlConnection myConnection = new MySqlConnection(Connect);

           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

           MySqlDataReader MyDataReader;

           myConnection.Open();

           MyDataReader = myCommand1.ExecuteReader();

           while (MyDataReader.Read())

           {

               comboBox1.Items.Add(MyDataReader.GetString(0));

           }

           MyDataReader.Close();

           myConnection.Close();

           if (comboBox1.Items.Count != 0)

               comboBox1.SelectedIndex = 0;

           else

               comboBox1.SelectedItem = null;*/

       }

       private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)

       {

           if (comboBox1.SelectedItem != null)

           {

               int ID;

               string CommandText1 = "SELECT idWOrker FROM Workers WHERE WorkerName = '" + comboBox1.SelectedItem.ToString() + "'";

               MySqlConnection myConnection = new MySqlConnection(Connect);

               MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

               MySqlDataReader MyDataReader;

               myConnection.Open();

               ID = Convert.ToInt32(myCommand1.ExecuteScalar().ToString());

               CommandText1 = "SELECT TaskName FROM Tasks WHERE idTask = " + ID;

               myCommand1 = new MySqlCommand(CommandText1, myConnection);

               MyDataReader = myCommand1.ExecuteReader();

               int i = 0;

               dataGridView1.Rows.Clear();

               while (MyDataReader.Read())

               {

                   dataGridView1.Rows.Add();

                   dataGridView1.Rows[i].Cells[0].Value = MyDataReader.GetString(0);

                   i++;

               }

               MyDataReader.Close();

               myConnection.Close();

           }      

       }

       private void toolStripMenuItem1_Click(object sender, EventArgs e)

       {

           DialogResult dr = new DialogResult ();

           Form2 Dialog = new Form2();

           dr = Dialog.ShowDialog();

           if (dr == DialogResult.OK)

           {

               if (dataGridView1.CurrentCell.ColumnIndex == 0)

               {

                   if (dataGridView1.SelectedCells[0].Value != null)

                   {

                       string CommandText1 = "DELETE FROM Tasks WHERE TaskName = '" + dataGridView1.SelectedCells[0].Value + "'";

                       MySqlConnection myConnection = new MySqlConnection(Connect);

                       MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                       myConnection.Open();

                       myCommand1.ExecuteReader();

                       myConnection.Close();

                   }

               }

           }

           else

           {

           }

       }

       private void удалитьToolStripMenuItem_Click(object sender, EventArgs e)

       {

           DialogResult dr = new DialogResult();

           Form2 Dialog = new Form2();

           dr = Dialog.ShowDialog();

           if (dr == DialogResult.OK)

           {

               if (dataGridView2.CurrentCell.ColumnIndex == 0)

               {

                   if (dataGridView2.SelectedCells[0].Value != null)

                   {

                       string CommandText1 = "DELETE FROM worker WHERE Name = '" + dataGridView2.SelectedCells[0].Value + "' AND LastName = '" 

                       + dataGridView2.Rows[dataGridView2.CurrentCell.RowIndex].Cells[dataGridView2.CurrentCell.ColumnIndex + 1].Value + "' AND idDepartment = "

                       + OrderID;

                       MySqlConnection myConnection = new MySqlConnection(Connect);

                       MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                       myConnection.Open();

                       myCommand1.ExecuteReader();

                       myConnection.Close();

                   }

               }

               if (dataGridView2.CurrentCell.ColumnIndex == 1)

               {

                   if (dataGridView2.SelectedCells[0].Value != null)

                   {

                       string CommandText1 = "DELETE FROM worker WHERE LastName = '" + dataGridView2.SelectedCells[0].Value + "' AND Name = '"

                       + dataGridView2.Rows[dataGridView2.CurrentCell.RowIndex].Cells[dataGridView2.CurrentCell.ColumnIndex - 1].Value + "' AND idDepartment = "

                       + OrderID;

                       MySqlConnection myConnection = new MySqlConnection(Connect);

                       MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                       myConnection.Open();

                       myCommand1.ExecuteReader();

                       myConnection.Close();

                   }

               }

           }

           else

           {

           }

       }

       private void dataGridView1_CellDoubleClick_1(object sender, DataGridViewCellEventArgs e)

       {

           

       }

       private void dataGridView1_CellBeginEdit_1(object sender, DataGridViewCellCancelEventArgs e)

       {

           if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)

           {

               temp = dataGridView1.CurrentCell.Value.ToString();

           }

           else

           {

               EmptySelect = true;

           }

       }

       private void dataGridView1_CellEndEdit_1(object sender, DataGridViewCellEventArgs e)

       {

           if ((e.RowIndex <= dataGridView1.RowCount - 2) && (!EmptySelect))

           {

               if (dataGridView1.CurrentCell.Value.ToString() != temp)

               {

                   DialogResult dr = new DialogResult();

                   Form3 Dialog = new Form3();

                   dr = Dialog.ShowDialog();

                   if (dr == DialogResult.OK)

                   {

                       string CommandText1 = "UPDATE Tasks SET TaskName = '" + dataGridView1.CurrentCell.Value.ToString() + "' WHERE TaskName = '" + temp + "'";

                       MySqlConnection myConnection = new MySqlConnection(Connect);

                       MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                       myConnection.Open();

                       myCommand1.ExecuteReader();

                       myConnection.Close();

                   }

                   else

                   {

                       dataGridView1.CurrentCell.Value = temp;

                   }

               }

           }

           else

           {

               if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)

               {

                   DialogResult dr = new DialogResult();

                   Form6 Dialog = new Form6();

                   dr = Dialog.ShowDialog();

                   if (dr == DialogResult.OK)

                   {

                       string CommandText1 = "SELECT idWorker FROM Workers WHERE WorkerrName = '" + comboBox1.SelectedItem.ToString() + "'";

                       MySqlConnection myConnection = new MySqlConnection(Connect);

                       MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                       myConnection.Open();

                       int IDC = -1;

                       IDC = (Int32)myCommand1.ExecuteScalar();

                       string CommandText2 = "INSERT INTO `Workers` (`WorkerName`, `idWorker`) VALUES ('" 

                           + dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value + "'," + IDC + ");";

                       myCommand1 = new MySqlCommand(CommandText2, myConnection);

                       myCommand1.ExecuteScalar();

                       myConnection.Close();

                   }

               }

               EmptySelect = false;

           }

       }

       private void button1_Click(object sender, EventArgs e)

       {

           Form4 AddForm = new Form4();

           AddForm.Parent = this.Parent;

           AddForm.Show();

       }

       private void button3_Click(object sender, EventArgs e)

       {

           comboBox1.Items.Clear();

           string CommandText1 = "SELECT WorkerrName FROM Workers";

           MySqlConnection myConnection = new MySqlConnection(Connect);

           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

           MySqlDataReader MyDataReader;

           myConnection.Open();

           MyDataReader = myCommand1.ExecuteReader();

           while (MyDataReader.Read())

           {

               comboBox1.Items.Add(MyDataReader.GetString(0));

           }

           MyDataReader.Close();

           myConnection.Close();

       }

       private void button2_Click(object sender, EventArgs e)

       {

           string CommandText1 = "DELETE FROM `Worker` WHERE `WorkerName`='" + comboBox1.SelectedItem.ToString() +"';";

           MySqlConnection myConnection = new MySqlConnection(Connect);

           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

           myConnection.Open();

           myCommand1.ExecuteScalar();

           CommandText1 = "SELECTWorkerName FROM worker";

           myCommand1 = new MySqlCommand(CommandText1, myConnection);

           comboBox1.Items.Clear();

           MySqlDataReader MyDataReader;

           MyDataReader = myCommand1.ExecuteReader();

           while (MyDataReader.Read())

           {

               comboBox1.Items.Add(MyDataReader.GetString(0));

           }

           MyDataReader.Close();

           myConnection.Close();

           comboBox1.SelectedIndex = 0;

       }

       private void dataGridView2_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

       {

           if (dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)

           {

               temp = dataGridView2.CurrentCell.Value.ToString();

               TCell0 = dataGridView2.Rows[e.RowIndex].Cells[0].Value.ToString();

               TCell1 = dataGridView2.Rows[e.RowIndex].Cells[1].Value.ToString();

           }

           else

           {

               EmptySelect = true;

           }

       }

       private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e)

       {

           if ((e.RowIndex <= dataGridView2.RowCount - 2) && (!EmptySelect))

           {

               if (dataGridView2.CurrentCell.Value.ToString() != temp)

               {

                   DialogResult dr = new DialogResult();

                   Form3 Dialog = new Form3();

                   dr = Dialog.ShowDialog();

                   if (dr == DialogResult.OK)

                   {

                       if (e.ColumnIndex == 0)

                       {

                           string CommandText1 = "UPDATE worker SET Name = '" + dataGridView2.CurrentCell.Value.ToString() + "' WHERE Name = '" + temp + "'";

                           MySqlConnection myConnection = new MySqlConnection(Connect);

                           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                           myConnection.Open();

                           myCommand1.ExecuteScalar();

                           myConnection.Close();

                       }

                       else

                       {

                           string CommandText1 = "UPDATE worker SET LastName = '" + dataGridView2.CurrentCell.Value.ToString() + "' WHERE LastName = '" + temp + "'";

                           MySqlConnection myConnection = new MySqlConnection(Connect);

                           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                           myConnection.Open();

                           myCommand1.ExecuteScalar();

                           myConnection.Close();

                       }

                   }

                   else

                   {

                       dataGridView2.CurrentCell.Value = temp;

                   }

               }

           }

           else

           {

             if (dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)

               {

                   DialogResult dr = new DialogResult();

                   Form6 Dialog = new Form6();

                   dr = Dialog.ShowDialog();

                   if (dr == DialogResult.OK)

                   {

                       if (e.ColumnIndex == 0)

                       {

                           Form7 Quest = new Form7();

                           Quest.ShowDialog();

                           string CommandText1 = "INSERT INTO `worker` (`Name`, `LastName`, `idDepartment`) VALUES ('" + dataGridView2.CurrentCell.Value.ToString() + "','" +

                                                           SC.text + "'," + OrderID + ");";

                           MySqlConnection myConnection = new MySqlConnection(Connect);

                           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                           myConnection.Open();

                           myCommand1.ExecuteScalar();

                           myConnection.Close();

                       }

                       else

                       {

                           Form7 Quest = new Form7();

                           Quest.ShowDialog();

                           string CommandText1 = "INSERT INTO `worker` (`Name`, `LastName`, `idDepartment`) VALUES ('" + SC.text + "','" +

                                                           dataGridView2.CurrentCell.Value.ToString() + "'," + OrderID + ");";

                           MySqlConnection myConnection = new MySqlConnection(Connect);

                           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

                           myConnection.Open();

                           myCommand1.ExecuteScalar();

                           myConnection.Close();

                       }

                   }

               }

               EmptySelect = false;

           }

       }

       public void search(DataGridView e, string table, string [] cll, TextBox t)

       {

           string CommandText1 = "SELECT * FROM " + table + " WHERE " + cll[0] + " = '" + t.Text +"'";

           for (int i = 1; i < cll.Length; i++)

           {

               CommandText1 += " OR " + cll[i] + " = '" + t.Text +"'";

           }

           CommandText1 += ";";

           MySqlConnection myConnection = new MySqlConnection(Connect);

           MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

           myConnection.Open();

           MySqlDataReader MyDataReader;

           MyDataReader = myCommand1.ExecuteReader();

           int cnt = 0;

           string text2 = "Совпадения найдены :\r\n";

           if (MyDataReader.HasRows)

           {

               while (MyDataReader.Read())

               {

                   int i = 0;

                   while (i < MyDataReader.FieldCount)

                   {

                       text2 += MyDataReader.GetString(i) + "    "; i++;

                   }

                   cnt++;

                   text2 += "\r\n";

               }

               MessageBox.Show(text2);

           }

           else

           {

               MessageBox.Show("Совпадений не найдено");

           }

       }

       private void button4_Click(object sender, EventArgs e)

       {

           string []cll = {"idDepartment", "DepartmentName", "idWorker"};

           search(dataGridView1, "Departments", cll, textBox1);

       }

       private void button5_Click(object sender, EventArgs e)

       {

           string[] cll = { "idWorker", "Name", "LastName", "idTask" };

           search(dataGridView2, "worker", cll, textBox2);

       }

       private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

       {

           if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)

           {

               string CommandText1 = "SELECT idDepartment FROM Departments WHERE DepartmentName = '" + dataGridView1.SelectedCells[0].Value + "'";

               MySqlConnection myConnection = new MySqlConnection(Connect);

               MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

               MySqlDataReader MyDataReader;

               myConnection.Open();

               OrderID = Convert.ToInt32(myCommand1.ExecuteScalar().ToString());

               CommandText1 = "SELECT Name, lastname FROM workers WHERE idDepartment = " + OrderID;

               myCommand1 = new MySqlCommand(CommandText1, myConnection);

               MyDataReader = myCommand1.ExecuteReader();

               int i = 0;

               dataGridView2.Rows.Clear();

               while (MyDataReader.Read())

               {

                   dataGridView2.Rows.Add();

                   dataGridView2.Rows[i].Cells[0].Value = MyDataReader.GetString(0);

                   dataGridView2.Rows[i].Cells[1].Value = MyDataReader.GetString(1);

                   i++;

               }

               MyDataReader.Close();

               myConnection.Close();

           }

       }

       private void button6_Click(object sender, EventArgs e)

       {

           Form8 AnaliticForm = new Form8();

           AnaliticForm.Show();

       }

       private void button7_Click(object sender, EventArgs e)

       {

           Form9 f9 = new Form9();

           SC.form = f9;

           f9.Show();       

       }

   }

   public class SerchData

   {

       public SerchData(){}

       public int data1 { get; set; }

       public string data2 { get; set; }

       public string data3 { get; set; }

   }

   public static class SC

   {

      public static string text = "";

      public static Form9 form;

   }

}


 

А также другие работы, которые могут Вас заинтересовать

37019. Утиліта - Dr. Hardware 1.54 MB
  Загальна інформація – надається користувачеві загальна інформація про комп’ютер та основні його характеристики . Диспетчер пристроїв – це інформація яка надається пристроям які підключенні до комп’ютера та додаткова інформація про них та їхній стан . Системна інформація – надається інформація про систему яка встановлена на даному комп’ютері . ресурси – інформація про ресурси які є на комп’ютері та як вони використовуються.
37020. Експрес-метод визначення коефіцієнтів плодоношення центральних бруньок вічок перед обрізуванням винограду і встановлення навантаження вічками 2.5 MB
  Експрес – метод визначення коефіцієнтів плодоношення центральних бруньок вічок перед обрізуванням винограду. Засвоїти методику швидкого визначення закладання зачатків суцвіть у центральних бруньках способом препарування зимуючих вічок під бінокулярним мікроскопом побудувати графіки розподілення коефіцієнтів плодоношення центральних бруньок і прийняти рішення щодо оптимізації довжини обрізування винограду.Експрес – метод визначення коефіцієнтів плодоношення центральних бруньок вічок перед обрізуванням винограду.
37021. Складання календарного плану робіт на винограднику і виноградній шкілці 97 KB
  Внесення мінеральних та органічних добрив Березеньквітень 1 2 3 Квітень Відкривання кущів винограду Остаточне обрізування кущів та заготівля чубуків Закінчення щеплення стратифікація та загартування щеп Садіння винограду та підсаджування на місцях випадів Ремонт шпалери та встановлення її на молодих Виноградниках Сухе підв'язування пагонів Вкладання підсадок для ліквідації зрідженості Садіння чубуків у шкілку Весняне чизелювання або культивація ґрунту на виноградниках Захист від весняних приморозків До розпус кання вічок Те саме “ “...
37022. Схема і методика ампелографічного опису морфологічних ознак органів виноградної рослини, що характеризують сорт 86.5 KB
  Після чого описують морфологічні ознаки: молодого і визрілого пагонів листка середнього ярусу квітки грона ягоди насінини. Технологічна характеристика: механічний склад грона і ягоди вихід сусла механічні властивості ягоди хімічний склад соку і його зміни в процесі достигання використання сорту і характеристика його продукції. Розмір грона визначають за його довжиною від основи до самої верхньої ягоди. Розрізняють дуже щільні якщо ягоди в гроні тісно притиснуті одна до одної і їх неможливо розсунути.
37026. ПУЛЬТОВОЕ ОБОРУДОВАНИЕ 1023.5 KB
  Содержание I Техническое описание лабораторного модуля Назначение 4 Технические характеристики 4 Состав и конструктивное исполнение 4 Подготовка к работе 5 II Технические характеристики и основы программирования таймера Н5СХ Общие сведения 6 Подключение входных и Выходных сигналов 7 Программирование таймера Н5СХ 8 III Технические характеристики и основы программирования счётчика Н7СХ Общие сведения 16 Подключение входных и выходных сигналов 17 Программирование счётчика Н7СХ 18 IV Технические характеристики и основы...
37027. Весна пришла. Сценарий класного часа 17.01 KB
  Настя: Ребята мы сегодня поговорим об одном из прекрасных времен года о весне. Далее Настя рассказывает о праздниках весны какие праздники знают дети Рассказ о космонавте Ю. Настя Аня Полет Белки и Стрелки в космос был осуществлен 19 августа 1960 года когда одна из ракет стартовавшая с космодрома Байконур вывела на орбиту космический корабль Восток с собаками на борту. Настя Какой бывает весна 3.