Разработка приложения в среде MS Visual Studio для работы с базой данных
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное
образовательное учреждение
высшего профессионального образования
«Восточно-Сибирского государственного
университета технологий и управления»
ОТЧЕТ
по учебной практике
на тему «Разработка приложения в
среде MS Visual Studio для работы с базой данных»
Выполнил: студент
гр. Д632.Игнаева.И.В
Проверил:
к.т.н., доц. Бильгаева Л.П.
Улан-Удэ
Задание на практику
Разработать информационную систему "Перевозки" . БД системы
содержит три таблицы: "Транспорт", "Заявки",
"Доставка" .
"Транспорт":
·
марка автомобиля;
·
государственный
номер (ключевое поле);
·
расход топлива
(литров на 100 км.).
"Заявки":
·
код заявки
(ключевое поле);
·
дата;
·
пункт
отправления;
·
пункт назначения;
·
название груза;
·
единица
измерения;
·
количество груза.
"Доставка":
·
дата и время
отправления,
·
дата и время
возвращения,
·
гос. номер
автомобиля,
·
код заявки,
·
ед. измерения,
·
количество
фактически перевезенного груза,
·
пройденное
расстояние.
Введение
В современном обществе высокие информационные технологии стали
фундаментальной инфраструктурой. В последнее десятилетие в мире наблюдается
увеличение объема информации. Синхронно с этим процессом в ряде областей науки,
техники и управления народно-хозяйственным комплексом появляется все больше
задач, требующих для своего эффективного решения новых технологий обработки
данных.
Актуальность темы работы обусловлена тем, что в современных условиях
жесткой конкуренции успешно могут действовать лишь те субъекты хозяйствования,
которые оперативно и эффективно обрабатывают информацию.
Речь идёт о разработке и освоении в производстве информационной
подсистемы, с помощью которой можно было бы оперативно обрабатывать информацию
и получать результаты. Эта подсистема проста в эксплуатации и понятна обычному
пользователю.
Для разработки приложения были выбраны следующие программные продукты:
- Microsoft visual studio 2012
Microsoft SQL server 2008
Microsoft Visual Studio - мощная среда разработки, обеспечивающая высокое
качество кода на протяжении всего цикла жизни ПО, от проектирования до
внедрения.Server 2008 является бесплатным выпуском SQL Server и представляет
собой идеальную платформу данных для обучения и создания небольших серверных
приложений, которые могут распространяться независимыми поставщиками
программного обеспечения.
Целью практики является создание приложения в среде MS Visual Studio для работы с базой данных
Задачи:
. Создать базу данных в среде MS SQL Server 2008
. Создать приложение в среде MS Visual Studio 2012
. Тестирование приложения
Создание приложения в среде MS Visual Studio 2012
. Создание нового проекта :
New Project -> VisualC#-> WindowsForm
2. Добавление форм в проект:
Обозреватель решений ->правой кнопкой мышки наWindowsFormAplication -> Добавить -> форма Windows
. Просмотр, добавление и удаление данных:
Добавление записей в таблицу «Транспорт»
На рисунке 1 представлена главная форма , на которой присутствует
компонент menuStip.
MenuStip - предоставляет системе меню для формы.
Процесс ввода происходит, при выборе пунктов меню. Например, пункт меню
«Транспорт» (Рисунок 1).
Рисунок 1 - Выбор пункта меню «Ввод данных» и подпункта «Транспорт»
При выборе подпунктов меню в пункте меню «Транспорт» добавляются и
удаляются данные.
. Ввод данных в таблицу «Транспорт»
На данной форме используются компоненты :
TextBox-
возвращает или задает текстовое содержимое текстового поля
Label-
пояснительный текст на форме
Button
- специальная кнопка, которая используется для выполнения определённой задачи
DataGridView-
отображает данные в настраиваемой таблице
Для добавления записи в таблицу заполнить поля «Марка машины»,
«Гос.Номер» «Расход топлива» и нажать кнопку «добавить» . На рисунке 2
представлена добавленная запись.
Рисунок 2 - Добавление записи в таблицу «Транспорт»
Удаление данных из таблицы «Транспорт»
Выбираем строки, которые необходимо удалить.
Рисунок 4- Удаление выбранной строки из таблицы «Транспорт»
Нажимаем кнопку «Удалить»
Рисунок 5 - Выбранная строка удалена из таблицы «Транспорт»
Ввод данных в таблицу «Заявки»
На данной форме используются новый компонент DateTimePicker , который позволяет выбрать дату и время и
отобразить их.
Рисунок 6 - Добавление записи в таблицу «Заявки»
Удаление данных из таблицы «Заявки»
Выбираем строку, которую необходимо удалить.
Рисунок 8 - Удаление выбранной строки из таблицы «Заявки»
Нажимаем на кнопку удалить
Рисунок 9 - Выбранная строка удалена из таблицы «Заявки»
Ввод данных в таблицу «Доставка»
Рисунок 10 - Добавление записи в таблицу «Доставка»
Удаление данных из таблицы «Доставка»
Выбираем строку, которую необходимо удалить.
Рисунок 12 - Удаление выбранной строки из таблицы «Доставка»
Нажимаем на кнопку удалить
Рисунок 13 - Выбранная строка удалена из таблицы «Доставка»
Запросы
. Фильтрация по номеру машины
На форме присутствуют компоненты:
CheckBox
- Отображает флажок, позволяющий отобразить нажатие и отжатие.
Textbox
- возвращает или задает текстовое содержимое текстового поля.
DataGridView-
отображает данные в настраиваемой таблице.
Для фильтрации нужно ввести данные в TextBox и выбрать необходимый критерий.
На рисунке 15 представлена форма с критериями на фильтрацию.
Рисунок 15- Форма с критериями на фильтрацию.
Рисунок 16 - Выбор фильтрации по номеру машины
. Фильтрация по дате отправления
Рисунок 17 - Форма с критериями на фильтрацию
Рисунок 18 - Выбор фильтрации по дате отправления
Отчет Доставка
Код формы «Транспорт»
Добавление
private void button2_Click(object sender,
EventArgs e)
{add;comb;ds = new DataSet();con;com;= new
SqlConnection("Data Source=HOME;Initial Catalog=per; Integrated
Security=True");
con.Open();
com = new SqlCommand("Insert into
Transport (ma, gn, rt ) Values(@x, @y, @z)",
con);.Parameters.Add("@x", SqlDbType.Char,
10);.Parameters.Add("@y",
SqlDbType.Char,10);.Parameters.Add("@z", SqlDbType.Int);.Parameters["@x"].Value
= textBox1.Text;.Parameters["@y"].Value =
textBox2.Text;.Parameters["@z"].Value = Convert.ToInt32(
textBox3.Text);.ExecuteNonQuery();= new SqlDataAdapter("select * from
Transport", con);= new SqlCommandBuilder(add);.Fill(ds,
"Transport");col = new DataColumn("Выбор",
typeof(bool));.Tables[0].Columns.Add(col);(int i = 0; i <
ds.Tables[0].Rows.Count; i++)
{.Tables[0].Rows[i][3] = false;
}.DataSource =
ds.Tables[0];.Columns[3].CellTemplate = new DataGridViewCheckBoxCell();
con.Close();
Удаление
private void button3_Click(object sender,
EventArgs e)
{ds = new DataSet();con;com;add;comb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlCommand("Delete From Transport where
ma = @x and gn = @y and rt=@z", con);.Parameters.Add("@x", SqlDbType.Char,
10);.Parameters.Add("@y",
SqlDbType.Char,10);.Parameters.Add("@z", SqlDbType.Int);(int i = 0; i
< dataGridView1.Rows.Count - 1; i++)
{((bool)dataGridView1[3, i].Value == true)
{.Parameters["@x"].Value =
dataGridView1[0, i].Value;.Parameters["@y"].Value = dataGridView1[1,
i].Value;.Parameters["@z"].Value = dataGridView1[2,
i].Value;.ExecuteNonQuery();
}
}= new SqlDataAdapter("select * from
Transport", con);= new SqlCommandBuilder(add);.Fill(ds,
"Transport");col = new DataColumn("Выбор",
typeof(bool));.Tables[0].Columns.Add(col);(int i = 0; i <
ds.Tables[0].Rows.Count; i++)
{.Tables[0].Rows[i][3] = false;
}.DataSource =
ds.Tables[0];.Columns[3].CellTemplate = new DataGridViewCheckBoxCell();
con.Close();
база данные приложение фильтрация
Таблица «Заявки»
Добавление
DataSet d = new DataSet();connect = new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();zayvki = new SqlCommand("Insert into zayvki
(kz, dt, pn,po,ng,ei,cg) Values(@a, @b, @c, @d, @f, @e, @h)", connect);.Parameters.Add("@a",
SqlDbType.Int);.Parameters.Add("@b",
SqlDbType.Date);.Parameters.Add("@c",
SqlDbType.Char,20);.Parameters.Add("@d",
SqlDbType.Char,20);.Parameters.Add("@f", SqlDbType.Char,20);.Parameters.Add("@e",
SqlDbType.Char,20);.Parameters.Add("@h",
SqlDbType.Int);.Parameters["@a"].Value =
Convert.ToInt32(textBox1.Text);.Parameters["@b"].Value =
dateTimePicker1.Value;.Parameters["@c"].Value =
(textBox2.Text);.Parameters["@d"].Value = (textBox3.Text);.Parameters["@f"].Value
= (textBox4.Text);.Parameters["@e"].Value =
(textBox5.Text);.Parameters["@h"].Value =
Convert.ToInt32(textBox6.Text);.ExecuteNonQuery();da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");
connect.Open();= new SqlDataAdapter("SELECT kz AS
[Код заявки], dt AS Дата, pn AS [Пункт назначения], po AS [Пункт отправления],
ng AS [Наименоваие груза], ei AS [Единица измерения], cg AS [Количество груза]
FROM dbo.zayvki", connect);
cb = new SqlCommandBuilder(da);.Fill(d,
"kz");.DataSource = d.Tables[0];.Close();.Text = "";.Text =
"";.Text = "";.Text = "";.Text =
"";.Text = "";
Удаление
{(Convert.ToBoolean(dataGridView1[0,
i].Value) == true)
{.Parameters["@a"].Value =
Convert.ToInt32(dataGridView1[1, i].Value);.ExecuteNonQuery();
}
}= new SqlDataAdapter("SELECT kz AS [Код заявки], dt AS Дата, pn AS [Пункт назначения], po AS
[Пункт отправления], ng AS
[Наименоваие груза], ei AS
[Единица измерения], cg AS
[Количество груза] FROM
dbo.zayvki", connect);comb = new SqlCommandBuilder(da);.Fill(d,
"zayvki");.DataSource = d.Tables[0];
connect.Close();
}
.2 Таблица «Доставка»
Добавление
DataSet d = new DataSet();connect = new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();zayvki = new SqlCommand("Insert into Dastavka
(dvo, dvv, gn,kz,ei,kol,pr) Values(@a, @b, @c, @d, @f, @e, @h)",
connect);.Parameters.Add("@a",
SqlDbType.Date);.Parameters.Add("@b",
SqlDbType.Date);.Parameters.Add("@c", SqlDbType.Char,
10);.Parameters.Add("@d",
SqlDbType.Int);.Parameters.Add("@f", SqlDbType.Char,
20);.Parameters.Add("@e",
SqlDbType.Int);.Parameters.Add("@h",
SqlDbType.Int);.Parameters["@a"].Value =
dateTimePicker1.Value;.Parameters["@b"].Value = dateTimePicker2.Value;.Parameters["@c"].Value
= (textBox3.Text);.Parameters["@d"].Value =
Convert.ToInt32(textBox4.Text);.Parameters["@f"].Value =
(textBox5.Text);.Parameters["@e"].Value =
Convert.ToInt32(textBox6.Text);.Parameters["@h"].Value =
Convert.ToInt32(textBox7.Text);.ExecuteNonQuery();da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");
connect.Open();= new SqlDataAdapter ("SELECT dvo AS
[Дата и время отправления], dvv AS [Дата и время прибытия], gn AS [Гос.Номер],
kz AS [Код заявк], ei AS [Еденица измерения], kol AS [Количество фактического
груза],pr AS [Пройденое растояние] FROM dbo.Dastavka", connect);
cb = new SqlCommandBuilder(da);.Fill(d,
"Dastavka");.DataSource = d.Tables[0];.Close();.Text =
"";.Text = "";.Text = "";
textBox6.Text = "";
Удаление
DataSet d = new DataSet();dt = new
DataTable();connect = new SqlConnection("Data Source=HOME; Initial
Catalog=per; Integrated Security=True");.Open();da = new
SqlDataAdapter();qw = new SqlCommand("DELETE FROM Dastavka WHERE (
Dastavka.kz = @d)", connect);.Parameters.Add("@d",
SqlDbType.Int);a = dataGridView1.Rows.Count;(int i = 0; i < a; i++)
{(Convert.ToBoolean(dataGridView1[0,
i].Value) == true)
{
qw.Parameters["@d"].Value =
Convert.ToInt32(dataGridView1[4, i].Value);
qw.ExecuteNonQuery();
}
}= new SqlDataAdapter("SELECT dvo AS [Дата и время
отправления], dvv AS [Дата и время прибытия], gn AS [Гос.Номер], kz AS [Код
заявк], ei AS [Еденица измерения], kol AS [Количество фактического груза],pr AS
[Пройденое растояние] FROM dbo.Dastavka", connect);
SqlCommandBuilder comb = new
SqlCommandBuilder(da);.Fill(d, "Dastavka");.DataSource = d.Tables[0];
connect.Close()
Код запросов
Фильтрация по номеру
машины
private void Form5_Load(object sender,
EventArgs e)
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT Dastavka.dvo AS
[Дата и время отправления],
Dastavka.dvv AS [Дата и время возвращения], Dastavka.kz AS [Код заявки],
Dastavka.ei AS [Еденица измерения], Dastavka.kol AS [Количество фактического груза],
Dastavka.pr AS [Пройденый путь], Transport.ma AS [Марка машины],
Transport.gn AS [Гос.номер], Transport.rt AS [Расход топлива] FROM
Dastavka INNER JOIN Transport ON Dastavka.gn = Transport.gn ", connect);=
new SqlCommandBuilder(da);.Fill(ds, "Dastavka");.DataSource =
ds.Tables[0];.Close();
}void checkBox1_CheckedChanged_1(object
sender, EventArgs e)
{(checkBox1.Checked == true)
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT Dastavka.dvo AS
[Дата и время отправления],
Dastavka.dvv AS [Дата и время возвращения], Dastavka.kz AS [Код заявки],
Dastavka.ei AS [Еденица измерения], Dastavka.kol AS [Количество фактического груза],
Dastavka.pr AS [Пройденый путь], Transport.ma AS [Марка машины],
Transport.gn AS [Гос.номер], Transport.rt AS [Расход топлива] FROM
Dastavka INNER JOIN Transport ON Dastavka.gn = Transport.gn where
Transport.gn=" + textBox1.Text, connect);= new
SqlCommandBuilder(da);.Fill(ds, "Dastavka");.DataSource =
ds.Tables[0];.Text = "Скрыть";.Close();
}
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT Dastavka.dvo AS
[Дата и время отправления],
Dastavka.dvv AS [Дата и время возвращения], Dastavka.kz AS [Код заявки],
Dastavka.ei AS [Еденица измерения], Dastavka.kol AS [Количество фактического груза],
Dastavka.pr AS [Пройденый путь], Transport.ma AS [Марка машины],
Transport.gn AS [Гос.номер], Transport.rt AS [Расход топлива] FROM
Dastavka INNER JOIN Transport ON Dastavka.gn = Transport.gn ", connect);=
new SqlCommandBuilder(da);.Fill(ds, "Dastavka");.DataSource =
ds.Tables[0];.Text = "Показать";.Close();
}
}void checkBox2_CheckedChanged(object
sender, EventArgs e)
{(checkBox2.Checked == true)
{ds = new DataSet();connect;
SqlDataAdapter da;cb;
connect = new SqlConnection("Data
Source=HOME; Initial Catalog=per; Integrated Security=True");.Open();= new
SqlDataAdapter("SELECT zayvki.dt AS Дата, zayvki.po AS [Пункт отправления],
zayvki.pn AS [Пункт назначения],
zayvki.ng AS [Наименование груза], zayvki.ei AS [Еденица измерения],
zayvki.cg AS [Количество груза], zayvki.kz AS [Код заявки],
Dastavka.kol AS [Кол. факт. дост. гр],
Dastavka.pr AS [Пройденое растояние], Dastavka.gn AS [Гос.Номер],
Dastavka.dvv AS [Дата возвражения], Dastavka.dvo AS [Дата отправления] FROM
Dastavka INNER JOIN zayvki ON Dastavka.kz = zayvki.kz where Dastavka.dvo
BETWEEN '" + dateTimePicker1.Value + "' and '" +
dateTimePicker2.Value + "'ORDER BY zayvki.kz", connect);
cb = new SqlCommandBuilder(da);
da.Fill(ds, "zayvki");.DataSource
= ds.Tables[0];
checkBox2.Text = "Скрыть";.Close();
}
else
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");
connect.Open();= new SqlDataAdapter("SELECT
zayvki.dt AS Дата, zayvki.po AS [Пункт отправления], zayvki.pn AS [Пункт
назначения], zayvki.ng AS [Наименование груза], zayvki.ei AS [Еденица
измерения], zayvki.cg AS [Количество груза], zayvki.kz AS [Код заявки],
Dastavka.kol AS [Кол. факт. дост. гр], Dastavka.pr AS [Пройденое растояние],
Dastavka.gn AS [Гос.Номер], Dastavka.dvv AS [Дата возвражения], Dastavka.dvo AS
[Дата отправления] FROM Dastavka INNER JOIN zayvki ON Dastavka.kz =
zayvki.kz", connect);
cb = new SqlCommandBuilder(da);.Fill(ds,
"zayvki");.DataSource = ds.Tables[0];.Text = "Показать";
connect.Close();
}
}
}
}
Фильтрация по дате отправления
private void
checkBox1_CheckedChanged_1(object sender, EventArgs e)
{(checkBox1.Checked == true)
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT Dastavka.dvo AS
[Дата и время отправления],
Dastavka.dvv AS [Дата и время возвращения], Dastavka.kz AS [Код заявки],
Dastavka.ei AS [Еденица измерения], Dastavka.kol AS [Количество фактического груза],
Dastavka.pr AS [Пройденый путь], Transport.ma AS [Марка машины],
Transport.gn AS [Гос.номер], Transport.rt AS [Расход топлива] FROM
Dastavka INNER JOIN Transport ON Dastavka.gn = Transport.gn where
Transport.gn=" + textBox1.Text, connect);= new
SqlCommandBuilder(da);.Fill(ds, "Dastavka");.DataSource =
ds.Tables[0];.Text = "Скрыть";.Close();
}
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT Dastavka.dvo AS
[Дата и время отправления],
Dastavka.dvv AS [Дата и время возвращения], Dastavka.kz AS [Код заявки],
Dastavka.ei AS [Еденица измерения], Dastavka.kol AS [Количество фактического груза],
Dastavka.pr AS [Пройденый путь], Transport.ma AS [Марка машины],
Transport.gn AS [Гос.номер], Transport.rt AS [Расход топлива] FROM
Dastavka INNER JOIN Transport ON Dastavka.gn = Transport.gn ", connect);=
new SqlCommandBuilder(da);.Fill(ds, "Dastavka");.DataSource =
ds.Tables[0];.Text = "Показать";.Close();
}
}void checkBox2_CheckedChanged(object
sender, EventArgs e)
{(checkBox2.Checked == true)
{ds = new DataSet();connect;da;cb;= new
SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT zayvki.dt AS Дата,
zayvki.po AS [Пункт отправления],
zayvki.pn AS [Пункт назначения],
zayvki.ng AS [Наименование груза], zayvki.ei AS [Еденица измерения],
zayvki.cg AS [Количество груза], zayvki.kz AS [Код заявки],
Dastavka.kol AS [Кол. факт. дост. гр],
Dastavka.pr AS [Пройденое растояние], Dastavka.gn AS [Гос.Номер],
Dastavka.dvv AS [Дата возвражения], Dastavka.dvo AS [Дата отправления] FROM
Dastavka INNER JOIN zayvki ON Dastavka.kz = zayvki.kz where Dastavka.dvo
BETWEEN '" + dateTimePicker1.Value + "' and '" +
dateTimePicker2.Value + "'ORDER BY zayvki.kz", connect);= new
SqlCommandBuilder(da);.Fill(ds, "zayvki");.DataSource =
ds.Tables[0];.Text = "Скрыть";
connect.Close();
}
{
DataSet ds = new DataSet();connect;da;cb;=
new SqlConnection("Data Source=HOME; Initial Catalog=per; Integrated
Security=True");.Open();= new SqlDataAdapter("SELECT zayvki.dt AS Дата,
zayvki.po AS [Пункт отправления],
zayvki.pn AS [Пункт назначения],
zayvki.ng AS [Наименование груза], zayvki.ei AS [Еденица измерения],
zayvki.cg AS [Количество груза], zayvki.kz AS [Код заявки],
Dastavka.kol AS [Кол. факт. дост. гр],
Dastavka.pr AS [Пройденое растояние], Dastavka.gn AS [Гос.Номер],
Dastavka.dvv AS [Дата возвражения], Dastavka.dvo AS [Дата отправления] FROM
Dastavka INNER JOIN zayvki ON Dastavka.kz = zayvki.kz", connect);= new
SqlCommandBuilder(da);.Fill(ds, "zayvki");.DataSource =
ds.Tables[0];.Text = "Показать";
connect.Close();
}
}
}
}
Заключение
Было создано и протестировано приложение администратор гостиницы в среде MS Visual Studio 2012
Данное приложение предназначено для автоматизации гостиницы и выполняющее
ввод, хранение, обновление данных.
Список литературы
Работа с
базами данных на языке C# Составители О. Н. Евсеева А. Б. Шамшев