Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_rabota (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
927.58 Кб
Скачать

Создание новой записи

Рисунок 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)

{

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]