Задание:
Автоматизировать хранение компьютерных комплектующих, ноутбуков. Добавить возможность ручного сбора нужной пользователю конфигурации. Добавить возможность заказа и покупки ноутбука.
В проекте имеется разделение на администратора и пользователя:
Администратор может:
- Авторизироваться;
- Полный CRUD (Create, Read, Update, Delete);
- Добавлять полную конфигурацию;
- Настраивать соединение с базой данных.
Пользователь может:
- Авторизироваться;
- Просматривать информацию;
- Делать заказ на определённую модель;
- Распечатать данные заказа.
Данный проект содержит в себе пояснительную записку состоящую из следующих пунктов:
Содержимое проекта:
Содержимое папки Data (bin/Debug/Data):
- DB - папка с исходным SQL кодом, для создания базы данных и её заполнения
- Help - папка со справкой проекта
- Icons - папка с икон паком проекта
- Images - папка для хранения изображений проекта
- connection.cfg - конфигурационный файл проекта. Содержит строку подключения к БД
Пример кода:
#region Screen case 0: if (AdminStatus == true) { dGVMain.ReadOnly = false; dGVMain.AllowUserToAddRows = true; } else { dGVMain.ReadOnly = true; dGVMain.AllowUserToAddRows = false; } if (command.Equals("Load")) { _conn.LoadTable("Screen", "SELECT * FROM Screen", _conn.binSourceScreen, dGVMain, binNavigatorMain); } else if (command.Equals("AddEdit")) { if (checkEmptyDataGridCell(3, dGVMain) == true) { if (_conn.QueryToBool("SELECT * FROM Screen") == false) { Insert = "INSERT INTO Screen VALUES(" + 1 + ",'" + dGVMain[1, currentRow].Value + "','" + dGVMain[2, currentRow].Value + "','" + dGVMain[3, currentRow].Value + "')"; if (_conn.QueryToBool(Insert) == false & _conn.CheckException == false) { currentRow++; MessageBox.Show("Строка " + currentRow + " успешно сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { currentRow++; MessageBox.Show("Строка " + currentRow + " не сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { Count = _conn.AgregateQueryToDataGrid("SELECT COUNT(*) FROM Screen"); allRows = Convert.ToInt32(Count); allRows--; if (currentRow <= allRows) { Update = "UPDATE Screen SET Size = '" + dGVMain[1, currentRow].Value + "', ScreenType = '" + dGVMain[2, currentRow].Value + "', Cost = '" + dGVMain[3, currentRow].Value + "' WHERE Id = " + dGVMain[0, currentRow].Value; if (_conn.QueryToBool(Update) == false & _conn.CheckException == false) { currentRow++; MessageBox.Show("Строка " + currentRow + " успешно изменена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { currentRow++; MessageBox.Show("Строка " + currentRow + " не изменена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MaxId = _conn.AgregateQueryToDataGrid("SELECT Max(Id) FROM Screen"); maxId = Convert.ToInt32(MaxId); maxId++; Insert = "INSERT INTO Screen VALUES(" + maxId + ",'" + dGVMain[1, currentRow].Value + "','" + dGVMain[2, currentRow].Value + "','" + dGVMain[3, currentRow].Value + "')"; if (_conn.QueryToBool(Insert) == false & _conn.CheckException == false) { currentRow++; MessageBox.Show("Строка " + currentRow + " успешно сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { currentRow++; MessageBox.Show("Строка " + currentRow + " не сохранена!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } else { MessageBox.Show("Проверьте ячейки таблицы\nСтрока: " + _indexRow + ", ячейка: " + _indexColumn, "Ошибка сохранения!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (command.Equals("Delete")) { DeleteRecord("SELECT * FROM Screen", "Screen", _conn.binSourceScreen, dGVMain, binNavigatorMain); } try { dGVMain.Columns[1].HeaderText = "Размер"; dGVMain.Columns[2].HeaderText = "Тип экрана"; dGVMain.Columns[3].HeaderText = "Стоимость"; } catch (Exception exc) { MessageBox.Show(exc.Message); } break; #endregion
Содержание архива
-
Исходный код на C# для Visual Studio
-
Исходный код на SQL для PostgreSQL
-
Файл инструкции по установке и настройке
-
Пояснительная записка на 45 страниц (docx).
Zicise