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

ЛР_2_БД_Мотина. Отчет ккоо. Мдк0202. 4216. 000 Студент Мотина А. А преподаватель Карташова Е. В


Скачать 213.92 Kb.
НазваниеОтчет ккоо. Мдк0202. 4216. 000 Студент Мотина А. А преподаватель Карташова Е. В
Дата16.12.2018
Размер213.92 Kb.
Формат файлаdocx
Имя файлаЛР_2_БД_Мотина.docx
ТипОтчет
#60562



Министерство образования Московской области

ГБПОУ МО «Колледж «Коломна»

09.02.03

Дисциплина: МДК 02.02

Технология разработки и защиты базы данных

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

ОТЧЕТ

ККОО.МДК0202.4216.000

Студент:

Мотина А.А

Преподаватель:

Карташова Е.В.

Дата

Оценка:

2018

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

«Разработка запросов к БД»

Использование объекта SqlCommand для выполнения запросов.

Задание №1. Выполнение запроса, возвращающего строки.

Чтобы выполнить этот запрос, сначала нужно установить свойству Command объекта SqlCommand строковое значение, которое содержит текст запроса. После этого необходимо вызвать метод ExecuteReader объекта SqlCommand.

Используя базу данных sample, разработайте приложение, выполняющее следующие запросы:

1) Выполните выборку всех строк из таблицы works_on.

2) Выполните выборку табельных номеров всех сотрудников с должностью клерк.

3) Выполните выборку табельных номеров всех сотрудников, которые работают над проектом p2 и чей табельный номер меньше, чем 10 000.

4) Выполните выборку табельных номеров всех сотрудников, которые не приступили к работе над проектом в 2007 г.

5) Выполните выборку табельных номеров всех сотрудников проекта p1 с ведущими должностями (т. е. аналитик — analyst и менеджер — manager).

6) Выполните выборку всех сотрудников проекта p2, чья должность еще не определена.

7) Выполните выборку табельных номеров и фамилий сотрудников, чьи имена содержат две буквы "t".

8) Выполните выборку табельных номеров и имен всех сотрудников, у которых вторая буква фамилии "o" или "a" (буквы английские) и последние буквы фамилии "es".

9) Выполните выборку табельных номеров сотрудников, чьи отделы расположены в Сиэтле (Seattle).

10) Выполните выборку фамилий и имен сотрудников, которые приступили к работе над проектами 4 января 2007 г.
Текст программы.

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 System.Data.SqlClient;

namespace лабаааа2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no, project_no, job, enter_date" + " FROM Works_on ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();
SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

listBox1.Items.Add("emp_no" + "\t" + "project_no " + "job" + "\t \t" + "enter_date");

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void Очистка_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no" + " FROM Works_on where job='Clerk' ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();
cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";
listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton3_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no" + " FROM Works_on where project_no='p2' and (emp_no< 10000) ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{
str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton4_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no FROM Works_on Where YEAR(enter_date)!='2007'";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();
}

private void radioButton5_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no" + " FROM Works_on where project_no='p1' and ( job='Analyst' or job='Manager') ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();
}

private void radioButton6_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no" + " FROM works_on where project_no='p2' and job is null ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton7_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_fname" + " FROM employee group by emp_fname having emp_fname LIKE '%ll%' or emp_fname LIKE '%;%l%l' or emp_fname LIKE 'l%%l' or emp_fname LIKE 'll%' or emp_fname LIKE '%ll' ";

SqlConnection cn = new SqlConnection(strConn); cn.Open();
SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton8_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_fname, emp_no" + " FROM employee where emp_fname LIKE '_[o,a]%es'";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{
str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton9_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_no" + " FROM employee JOIN department on employee.dept_no=department.dept_no where location='Seattle'";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();
}

private void radioButton10_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT emp_fname, emp_lname" + " FROM employee JOIN works_on on employee.emp_no=works_on.emp_no where enter_date='2007-08-01'";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = cn.CreateCommand();

cmd.CommandText = strSQL;

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

}

}


Результат:


Задание №2. Получение единственного значения.

Если в запросе предусмотрено получение единственного значения, то можно воспользоваться методом ExecuteScalar , который возвращает не SqlDataReader, а первое значение первой строки обобщенного типа Object.

1) Вычисление среднего значения бюджета для всех бюджетов, превышающих $100000

2) Вычислите общую сумму бюджетов всех проектов.
Текст программы.а

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 System.Data.SqlClient;

namespace _2_задание_лаба_2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT AVG (budget) avg_budgete" + " FROM project Where budget>100000 ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";
for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "SELECT SUM (budget) sum_of_budgets" + " FROM project ";
SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

}}


Задание №3. Выполнение запроса, не возвращающего записей. Класс SqlCommad предоставляет метод ExecuteNonQuery , который выполняет запрос, не возвращая при этом объект SqlDataReader. Эти запросы используются, когда необходимо выполнить команды Insert, Update, Delete.

string strConn, strSQL;

strConn = @"Data Source=.\SQLExpress;" +

"Initial Catalog=Northwind;Trusted_Connection=Yes;";

strSQL = "UPDATE Customers SET CompanyName = 'NewValue' " +

"WHERE CustomerID = 'ALFKI'";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

Выполните следующие запросы

1) Вставьте данные для новой сотрудницы по имени Julia Long, табельный номер 11111. Она еще не назначена в какой-либо отдел.

2) Создайте новую таблицу для сотрудников, которые приступили к работе над своими проектами в 2007 г., и загрузите в нее соответствующие строки из таблицы employee.

3) Измените должности всех менеджеров (Manager) в проекте p1 на клерков (Clerk).

4) Измените значение бюджетов всех проектов на значение NULL.

5) Измените должность сотрудника с табельным номером 28559 на менеджера (Manager) для всех его проектов.

6) Повысьте на 10% бюджет проекта, менеджер которого имеет табельный номер 10102.

7) Удалите все отделы, расположенные в Сиэтле (Seattle).

8) Проект p3 выполнен. Удалите всю информацию об этом проекте из базы данных sample.

9) Удалите всю информацию из таблицы works_on для всех сотрудников, которые работают в отделах, расположенных в Далласе (Dallas).

Текст программы.
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 System.Data.SqlClient;
namespace _3задание2лаба

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)
{

listBox1.Items.Clear();

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "INSERT INTO employee VALUES (11112, 'Julia', 'Long', 'd1');";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

int k= cmd.ExecuteNonQuery();

listBox1.Items.Add(Convert.ToString(k));

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "CREATE TABLE emp_d3_d4 (emp_d1_no CHAR(6) NOT NULL,emp_fname CHAR(20) NOT NULL,emp_lname CHAR(20) NOT NULL); INSERT INTO emp_d1_d2(emp_d1_no, emp_fname, emp_lname)SELECT emp_no, emp_fname, emp_lname FROM employee WHERE dept_no = 'd1' or dept_no = 'd2'; ";

SqlConnection cn = new SqlConnection(strConn);
cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

SqlDataReader rdr = cmd.ExecuteReader();

cmd.ExecuteNonQuery();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

}

private void radioButton3_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "UPDATE works_on SET job = 'Clerk' WHERE job = 'Manager' AND project_no = 'p1'; ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";
while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

cmd.ExecuteNonQuery();

}

private void radioButton4_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "UPDATE project SET budget = NULL ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);
}

rdr.Close();

cmd.ExecuteNonQuery();

}

private void radioButton5_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "UPDATE works_on SET job = 'Manager' WHERE emp_no = '28559' ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

cmd.ExecuteNonQuery();

}

private void radioButton6_CheckedChanged(object sender, EventArgs e)

{
listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "UPDATE project SET budget = budget * 0.1 FROM project JOIN works_on on project.project_no = works_on.project_no WHERE emp_no = '10102' ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

cmd.ExecuteNonQuery();

}

private void radioButton7_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";

strSQL = "UPDATE employee SET dept_no = NULL WHERE dept_no = 'd2' DELETE FROM department WHERE location = 'Seattle'; ";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

cmd.ExecuteNonQuery();

}

private void radioButton8_CheckedChanged(object sender, EventArgs e)

{

listBox1.Items.Clear();

string strConn, strSQL;

strConn = @"Data Source=ПК-11-К319;" +

"Initial Catalog=sample;Trusted_Connection=Yes;";
strSQL = "DELETE FROM project WHERE project_no IN (SELECT project_no FROM project WHERE project_no = 'p3'); DELETE FROM works_on WHERE project_no = 'p3'; ";

SqlConnection cn = new SqlConnection(strConn);
cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);

cmd.ExecuteNonQuery();

SqlDataReader rdr = cmd.ExecuteReader();

string str = "";

while (rdr.Read())

{

str = "";

for (int i = 0; i < rdr.FieldCount; i++)

str += Convert.ToString(rdr[i]) + "\t";

listBox1.Items.Add(str);

}

rdr.Close();

cmd.ExecuteNonQuery();

}

}

}

Скриншот:



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