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;

   }

}


 

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

78356. Макроэкономическое регулирование национальной экономики 33.31 KB
  Государственная социальная политика. Это совокупность мероприятий в сфере налогообложения направленных на формирование доходной части государственного бюджета повышение эффективности функционирования всей национальной экономики обеспечение экономического роста занятости населения и стабильности денежного обращения Фискальная политика это система регулирования экономики посредством изменений государственных расходов и налогов. Фискальная политика может как благотворно так и достаточно болезненно воздействовать на стабильность...
78357. Экономический рост национальной экономики 63.55 KB
  Факторы экономического роста.Основы методологии расчетов темпов экономического роста. Показатели параметры экономического роста. Как известно темпы экономического роста определяют важнейшие характеристики хозяйствования такие как: динамика объемов производства в системе в целом отдельных ее отраслях и регионах; прогрессивные отраслевые сдвиги; скорость и степень совершенствования структуры национальной экономики; изменение величины и структуры потребления и накопления в стране; динамика уровня жизни населения страны в целом и...
78358. Конкурентоспособность национальной экономики 51.67 KB
  Понятие конкурентоспособности экономической деятельности.Оценка конкурентоспособности национальной экономики. Предпосылки конкурентоспособности национальной экономики ее отраслей и отдельных экономических агентов. Понятие конкурентоспособности экономической деятельности Что же понимать под конкурентоспособностью любого экономического агента.
78359. Региональные процессы в национальной экономике 31.27 KB
  Вместе с тем государство должно обеспечивать системные условия для устойчивого экономического развития страны благоприятной жизнедеятельности населения и рационального использования имеющегося ресурсного потенциала. Реализация вышеуказанных задач должна учитывать геоэкономические и геополитические факторы развития страны. Глобализация и усиление международной конкуренции требуют выработки эффективной стратегии позиционирования страны на мировых рынках. Настоящая Стратегия определяет стратегические направления территориального...
78360. Национальная экономическая деятельность и международные экономические отношения 39.82 KB
  Факторы влияющие на международные экономические позиции страны. Факторы влияющие на международные экономические позиции страны На международные экономические позиции нации оказывают влияние такие факторы как уровень развития национальной экономики структура национальной экономики ее экономическое могущество. Развитые и индустриальные страны занимают первое место в мировом импорте и экспорте. В то время как развитые страны импортируют главным образом сырьевые материалы и продукты питания а экспортируют в основном готовую продукцию...
78361. Регулирования внешнеэкономической деятельности 79.03 KB
  Основные направления регулирования внешнеэкономической деятельности. Механизмы и инструменты регулирования внешней торговли. Организационно-правовое обеспечение регулирования внешнеэкономической деятельности. Основные направления формы и методы государственного регулирования внешнеэкономической деятельности.
78362. Теневой оборот в национальной экономике 157.69 KB
  Современные экономические словари трактуют теневую экономику как «производство, распределение, обмен и потребление товарно-материальных ценностей, денег, услуг, которые не контролируются обществом и скрываются от органов государственного управления.
78363. Экономическая безопасность и национальная хозяйственная система 67.85 KB
  Экономическая безопасность в системе национальной безопасности страны. Институциональные основы системы экономической безопасности.Принципы организации и функционирования системы экономической безопасности. Экономическая безопасность в системе национальной безопасности страны.
78364. Предмет и задачи дисциплины «Национальная экономика» 59.41 KB
  Предпосылки становления функционирования и развития национальной экономики. Становление национальной экономики. Современные подходы к предмету и методу национальной экономики. Предмет и задачи курса национальной экономики Под национальной экономикой принято считать народное хозяйство страны.