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;

   }

}


 

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

17989. 4D Брендинг 1.55 MB
  Томас Гэд 4D Брендинг От автора ПРОИЗНЕСИТЕ СЛОВО брэндинг и оно прозвучит как магическое заклинание. Коммерческая нирвана успокоение по мере того как перед вашими глазами проходят логотипы потребительских брэндов: CocaCola Heineken Marlboro Nescafe. Волшебные названия и и
17990. 22 НЕПРЕЛОЖНЫХ ЗАКОНА МАРКЕТИНГА 898.5 KB
  Д.ТРАУТ. 22 НЕПРЕЛОЖНЫХ ЗАКОНА МАРКЕТИНГА Нарушайте их на свой страх и риск Введение Миллиарды долларов были попусту истрачены на маркетинговые программы которые заранее были обречены на провал независимо от того насколько они были умными и блестящими или от т...
17991. Экология. Конспект лекций 929.5 KB
  Экология ЛЕКЦИЯ №1 Научнотехнический прогресс и состояние окружающей среды. Предмет и задачи дисциплины. Понятие об еэкологическом кризисе.Причины возникновения природоохранных экологических и ресурсныхпроблем человечества. Основные причины экологического кри
17992. 500 cоветов секретарю 2.74 MB
  Ольга Энговатова 500 cоветов секретарю Введение Секретарь первый с кем встречается посетитель приходя в фирму учреждение организацию предприятие. Он как бы представляет фирму. Через него идет прием посетителей и ведутся телефонные переговоры. Именно
17993. Іноземна мова зі спеціальності Економіка і підприємництво та Менеджмент 791.5 KB
  МЕТОДИЧНІ ВКАЗІВКИ І ЗАВДАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ з дисципліни Іноземна мова зі спеціальності для студентів Інституту післядипломної освіти і дистанційного навчання ІПОДН спеціальностей Економіка і підприємництво та Менеджмент Методичні вказівки і
17994. Основи організації вантажних перевезень на автомобільному транспорті 531 KB
  МЕТОДИЧНІ ВКАЗІВКИ до курсового проекту з дисципліни Основи організації вантажних перевезень на автомобільному транспорті для студентів спеціальності 7.100.403 Організація перевезень і управління на автомобільному транспорті Методичні вказівки до виконан
17995. Економічна теорія. Конспект лекцій 2.38 MB
  Тема 1. Предмет и метод экономической теории. План лекции: Сущность и функции экономической теории. Методы познания экономической теории. Экономические системы и их сущность. Сущность экономическое содержание собственности. 1.1 Сущность и функции эконо
17996. Господарське право. Тексти лекцій 666 KB
  ГОСПОДАРСЬКЕ ПРАВО тексти лекцій для семестрової дисципліни для студентів денного та заочного відділення за напрямами €œЕкономіка підприємства€ €œМіжнародна економіка€ €œОблік і аудит€ €œФінанси і кредит€ €œМаркетинг€ €œ
17997. ОСНОВЫ ИНФОРМАЦИОННОЙ КУЛЬТУРЫ 163 KB
  ТЕМА 1. ОСНОВЫ ИНФОРМАЦИОННОЙ КУЛЬТУРЫ Информатизация общества Бурное развитие компьютерной техники и информационных технологий послужило толчком к развитию общества построенного на использовании различной информации и получившего название информационно...