Создание новой записи
Рисунок 5. Форма для добавления новых записей
В этой форме работник/администратор могут добавлять новых пользователей, задавая имя, фамилию пользователя, дату когда заказа был принят и выдан, его стоимость, его состояние(Не готов/Готов к выдаче/Выдан) с помощью команды: "INSERT INTO * VALUES (*);. Так же стоит отметить что при добавлении нового клиента поля “Дата выдачи заказа”(End) и “Стомость”(Cost) в таблице = “--”, так как клиент только что оставил свой заказ и сложно говорить во сколько обойдётся ремонт, а уж тем более когда он будет закончен.
Редактирование
Рисунок 6. Форма для редактирования уже существующих записей.
В этой форме можно редактировать выбранную запись. Сначала заполним форму изначальными значениями с помощью присвоения значений из dataGridView из формы “Просмотр записей” (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[1].Value.ToString();, а с помощью команды "SELECT Comment FROM … WHERE id=…" записываем причину поломки в richTextBox. Нажав на кнопку “Редактировать запись” с помощью команды "UPDAT * SET … WHERE id= …" заменяем значения записи. При этом если заказ “не готов” или “готов к выдаче”, то поле “дата выдачи заказа” вместо даты принимает значение “--”. Примерно тоже самое можно сказать и о стоимости заказа, она определена только когда заказ был выполнен(Готов к выдаче/Выдан), в противном случае, когда заказ не готов, в поле стоимость стоит два прочерка.
Заключение
Результатом выполнения курсовой работы стало приложение позволяющее автоматизировать большинство повседневных рабочих задач, выполняемых работником сервисного центра. В приложении были реализованы возможности добавления и редактирования записей, а так же удаление их, доступное только пользователю с правам администратора, а клиент может с легкостью узнать о состоянии своего заказа в данный момент. Помимо этого, есть возможность оставить описание поломки, что может значительно сократить время, которое будет затрачено на ремонт. К сожалению, в приложении не удалось реализовать всех возможностей и идей, но, подводя итог, можно сказать, что данная курсовая работа была выполнена в соответствии с поставленной задачей в среде программирования Microsoft Visual Studio на языке C# и базой данных MySQL. В ходе выполнения работы были закреплены знания и умения полученные на лекционных и практических занятиях дисциплины «Программирование», в областях работы с Microsoft Visual Studio, языком программирования C# и базами данных MySQL.
Приложение
Приложение 1. Код формы “Авторизации”:
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApplication1
{
public partial class Авторизация : Form
{
public Авторизация()
{ Инициализация(определение) работник,админ,клиент
InitializeComponent();//инициализация формы
comboBox1.Items.Add("Администратор");
comboBox1.Items.Add("Работник");
comboBox1.Items.Add("Клиент");
}
[Установка соединения]
public string connectionString;
private void button2_Click(object sender, EventArgs ) [если все текстбоксы заполнены то кнопка 2 активна]
{ подсоединение к серверу
connectionString = "Server=" + textBox1.Text + "; uid=" + textBox2.Text + "; pwd=" + textBox3.Text + "; database=" + textBox4.Text + ";";
bool problem = false;
try
{ [Взаимодействие с базой данных,отправка и выполнение команд,получение данных из таблицы]
MySqlConnection connection = new MySqlConnection(connectionString);
MySqlCommand command = connection.CreateCommand();
string commandString = "SELECT Name FROM `" +textBox4.Text + "`.`" +textBox5.Text + ";";
connection.Open();
connection.Close();
}
catch
{ [установка соединения]
problem = true;
MessageBox.Show("Неудаётся подключиться, введены неверные параметры подключения!");[окно с сообщением о неудачной попытке подключения]
}
if (problem == false)
{
if (textBox2.Text == "user")
{
Form4 f4 = new Form4();
f4.Show();
this.Hide();
}
else
{
Form2 f2 = new Form2();
f2.Show();
this.Hide();
}
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{ [строка отвечающая за цену]
string value = (comboBox1.Text);
switch (value)
{ [отвечает за текстбоксы того под кем именно вы хотите зайти]
case "Администратор":
textBox2.Text = "root";
textBox3.Text = "123";
break;
case "Работник":
textBox2.Text = "worker";
textBox3.Text = "Worker123";
break;
case "Клиент":
textBox2.Text = "user";
textBox3.Text = "User12345"; ;
break;
}
textBox1.Text = "127.0.0.1";
textBox4.Text = "ServBD";
textBox5.Text = "table1";
}
private void Авторизация_Load(object sender, EventArgs e)
{
}
private void label5_Click(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{[отвечает за запись причины поломки]
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Приложение 2. Код формы “Для клиентов”:
using System;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form4 : Form
{
public Form4()
{ [инициализация формы]
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{ [Взаимодействие с базой данных клиент авторизируется]
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
MySqlCommand command = connection.CreateCommand();
string Name=null, SecondName=null; bool problem = false;
try
{
command.CommandText = "SELECT Name FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + textBox1.Text + "'";
connection.Open();
Name = command.ExecuteScalar().ToString();
connection.Close();
command.CommandText = "SELECT SecondName FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + textBox1.Text + "'";
connection.Open();
SecondName = command.ExecuteScalar().ToString();
connection.Close();
}
catch
{ [строка отвечающая за соответствие имя/фамилий клиента]
problem = true;
MessageBox.Show("Имя/Фамилия не соответсвуют номеру заказа");[показывает ошибку в текстбоксе]
}
if (problem == false)
{ [TextBox отвечающие за имя/фамилию клиента]
if ((Name == textBox2.Text) && (SecondName == textBox3.Text))
{ [Взаимодействие с базой банных клиент авторизируется]
command.CommandText = "SELECT Cost FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + textBox1.Text + "'";
connection.Open();
textBox4.Text = command.ExecuteScalar().ToString();
connection.Close();
command.CommandText = "SELECT Begin FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + textBox1.Text + "'";
connection.Open();
textBox6.Text = command.ExecuteScalar().ToString();
connection.Close();
command.CommandText = "SELECT Status FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + textBox1.Text + "'";
connection.Open();
textBox5.Text = command.ExecuteScalar().ToString();
connection.Close();
command.CommandText = "SELECT End FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + textBox1.Text + "'";
connection.Open();
textBox7.Text = command.ExecuteScalar().ToString();
connection.Close();
}
else
{ [показывает окно ошибки неверного имя/фамилий]
MessageBox.Show("Неверные Имя/Фамилия!");
}
}
}
[Отвечает за состояния текстбокса 1]
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
[Если все текстбоксы заполнены правильно то кнопка 3 активна]
private void button3_Click(object sender, EventArgs e)
{
Авторизация f1 = new Авторизация();
f1.Show();
this.Close();
}
private void button2_Click(object sender, EventArgs e) [создание заказа
{ присваивание значений заказа текстбоксами 1-7]
textBox1.Text = null;
textBox2.Text = null;
textBox3.Text = null;
textBox4.Text = null;
textBox5.Text = null;
textBox6.Text = null;
textBox7.Text = null;
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
}
Приложение 3. Код формы “Просмотр записей”:
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Timers;
using System.Globalization;
namespace WindowsFormsApplication1
{ [просмотр записей]
public partial class Form2 : Form
{
public Form2()
{ [создание таблицы]
InitializeComponent();
//Создание таблицы
this.dataGridView1.Columns.Add("id", "Номер заказа"); this.dataGridView1.Columns["id"].Width = 104;
this.dataGridView1.Columns.Add("Name", "Имя заказчика"); this.dataGridView1.Columns["Name"].Width = 103;
this.dataGridView1.Columns.Add("SecondName", "Фамилия заказчика"); this.dataGridView1.Columns["SecondName"].Width = 100;
this.dataGridView1.Columns.Add("Begin", "Приём заказа"); this.dataGridView1.Columns["Begin"].Width = 105;
this.dataGridView1.Columns.Add("Cost", "Стоимость"); this.dataGridView1.Columns["Cost"].Width = 100;
this.dataGridView1.Columns.Add("Status", "Статус"); this.dataGridView1.Columns["Status"].Width = 100;
this.dataGridView1.Columns.Add("End", "Дата выдачи"); this.dataGridView1.Columns["End"].Width = 100;
update();
}
public string magicdata;
static int i = 0;
static System.Windows.Forms.Timer Timer1 = new System.Windows.Forms.Timer();
public void update()
{ [Авторизация,Взаимодействие с базой данных чтобы просмотреть записи]
richTextBox1.Text = null;
dataGridView1.Rows.Clear();
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
MySqlCommand command = new MySqlCommand();
MySqlCommand RichCommand = new MySqlCommand();
string commandString = "SELECT * FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text+";";
command.CommandText = commandString;
command.Connection = connection;
MySqlDataReader reader;
try
{ [отвечает за заполнение таблицы,]
command.Connection.Open();
reader = command.ExecuteReader();
while (reader.Read())
{ [отвечает за просмотр заказо]
dataGridView1.Rows.Add(reader["id"].ToString(), reader["Name"].ToString(), reader["SecondName"].ToString(), reader["Begin"].ToString(), reader["Cost"].ToString(), reader["Status"].ToString(), reader["End"].ToString());
}
reader.Close();
}
catch
}
{
finally
{ [отвечает за закрытие таблицы]
connection.Close();
}
}
public void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int currInd = dataGridView1.CurrentCell.RowIndex;
update();
dataGridView1.CurrentCell = dataGridView1[0, currInd];
}
private void button4_Click_1(object sender, EventArgs e)
{ [Взаимодействие с базой данных,авторизация]
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
try
{ [Взаимодействие с базой данных, удаление и редактирование записей]
MySqlCommand command = connection.CreateCommand();
command.CommandText = "DELETE FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + dataGridView1.CurrentRow.Cells[0].Value.ToString() + "'";
command.Connection = connection;
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
catch
{ [закрытие]
}
finally
{ [обновление]
update();
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
i++;
Timer1.Tick += button1_Click;
Timer1.Interval = 1000;
if (i % 2 == 1)
{
Timer1.Start();
}
else
{
Timer1.Stop();
}
}
[Обновление записей]
public void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
}
private void button5_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();
f3.Show();
}
private void button2_Click_1(object sender, EventArgs e)
{
Редактирование f2 = new Редактирование();
f2.Show();
}
private void button3_Click(object sender, EventArgs e)
{ [откртыие-закрытие]
Form ifrm = Application.OpenForms[0];
ifrm.Show();
this.Close();
}
private void button6_Click(object sender, EventArgs e)
{ [Взаимодействие с базой данных просмотр записей]
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT Comment FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + dataGridView1.CurrentRow.Cells[0].Value.ToString() + "'";
connection.Open();
richTextBox1.Text = command.ExecuteScalar().ToString();
connection.Close();
}
}
}
Приложение 4. Код формы “Создание новой записи”:
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApplication1
{
public partial class Form3 : Form
{
public Form3()
{ [Авторизация]
InitializeComponent();
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
MySqlCommand command = new MySqlCommand();
comboBox1.Items.Add("Не готов"); comboBox1.Items.Add("Готов к выдаче"); comboBox1.Items.Add("Выдан");
}
public string magicdata;
private void button1_Click(object sender, EventArgs e)
{ [Взаимодействие с базой данных,открытие формы,просмотр статусов заказа]
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
try
{ [статус заказа Выдан]
magicdata = dateTimePicker2.Text;
if (comboBox1.SelectedItem.ToString() != "Выдан")
{ [статус заказа Готов к выдаче]
magicdata = "--";
}
MySqlCommand command = connection.CreateCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO `"+ (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`"+ (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` (Name, SecondName, Begin, Cost, Status, End, Comment) VALUES ('" + textBox1.Text + "', '" + textBox2.Text + "','" + dateTimePicker1.Text + "' , '" + textBox3.Text + "','" + comboBox1.SelectedItem.ToString() + "', '" + magicdata + "','" + richTextBox1.Text + "');";
connection.Open();
command.ExecuteNonQuery();
connection.Close();
(System.Windows.Forms.Application.OpenForms["Form2"] as Form2).update();
}
catch
{
}
finally
{
textBox1.Text = null;
textBox2.Text = null;
textBox3.Text = null;
dateTimePicker1.Text = null;
comboBox1 = null;
dateTimePicker2.Text = null;
richTextBox1.Text = null;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Приложение 5. Код формы “Редактирование”:
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApplication1
{
public partial class Редактирование : Form
{
public Редактирование()
{ [Взаимодействие с базой данных открытие профилей клиентов]
InitializeComponent();
textBox1.Text = (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[1].Value.ToString();
textBox2.Text = (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[2].Value.ToString();
dateTimePicker1.Text = (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[3].Value.ToString();
textBox3.Text = (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[4].Value.ToString();
comboBox1.SelectedItem = (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[5].Value.ToString();
magicdata = (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[6].Value.ToString();
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT Comment FROM `" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`" + (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` WHERE id='" + (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[0].Value.ToString() + "'";
connection.Open();
richTextBox1.Text = command.ExecuteScalar().ToString();
if (magicdata == "--")
{ [просмотр даты выдачи заказа]
dateTimePicker2.Text = null;
}
else
{
dateTimePicker2.Text = magicdata;
}
comboBox1.Items.Add("Не готов"); comboBox1.Items.Add("Готов к выдаче"); comboBox1.Items.Add("Выдан");
}
public string magicdata;
private void button1_Click(object sender, EventArgs e)
{
try
{
magicdata = dateTimePicker2.Text;
if (comboBox1.SelectedItem.ToString() != "Выдан")
{
magicdata = "--";
}
}
catch
{
}
try
{ [Взаимодействие с базой данных редактированние профилей клиентов]
MySqlConnection connection = new MySqlConnection((System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).connectionString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "UPDATE `"+ (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox4.Text + "`.`"+ (System.Windows.Forms.Application.OpenForms["Авторизация"] as Авторизация).textBox5.Text + "` SET `Name`='" + textBox1.Text + "', `SecondName`='" + textBox2.Text + "',`Begin`='" + dateTimePicker1.Text + "', `Cost`='" + textBox3.Text + "', `Status`='" + comboBox1.SelectedItem.ToString() + "', `End`='" + magicdata + "', `Comment`= '"+ richTextBox1.Text + "' WHERE `id`='" + (System.Windows.Forms.Application.OpenForms["Form2"] as Form2).dataGridView1.CurrentRow.Cells[0].Value.ToString() + "';";
command.Connection = connection;
connection.Open();
command.ExecuteNonQuery();
}
catch
{
}
(System.Windows.Forms.Application.OpenForms["Form2"] as Form2).update();
}
private void label5_Click(object sender, EventArgs e)
{
}
}
}
