//функция отображения панели с заказом в форму. void ShowPan(ProductPanelClass Pi, ComicClass Ci) { Pi.name.Text = Ci.ID.ToString(); Pi.price.Text = Ci.price.ToString() + '$'; Pi.genre.Text = Ci.genre.ToString(); Pi.pan.Visible = true; }
//функция отображения данных из элемента ComicClass в элементы формы заданные в элементе ProductPanelClass. void ShowPan(ProductPanelClass Pi, ComicClass Ci) { Pi.pic.Load(Ci.PicURL); Pi.name.Text = Ci.name_comic; Pi.price.Text = Ci.price.ToString() + '$'; Pi.count.Text = Ci.count.ToString(); Pi.pan.Visible = true; }
//при загрузки формы происходит проверка вызванного конструктора, если ID отличен от 0 значит надо загрузить форму изменения товара и заполнить её данными комикса с этим ID, в ином случае происходит загрузка формы добавления товара. private void AddProductForm_Load(object sender, EventArgs e) { if (ID != 0) { label1.Text = "Изменение товара"; Createbutton.Visible = false; Changebutton.Visible = true; ComicClass C = new ComicClass(); UsersDB db = new UsersDB(); DataTable table = new DataTable(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command = new MySqlCommand("SELECT * FROM `comics` WHERE `id_c` = @id", db.getConnection()); command.Parameters.Add("@id", MySqlDbType.VarChar).Value = ID; adapter.SelectCommand = command; adapter.Fill(table); if (table.Rows.Count > 0) { C.ID = ID; C.PicURL = table.Rows[0][1].ToString(); C.name_comic = table.Rows[0][2].ToString(); C.description = table.Rows[0][3].ToString(); C.price = int.Parse(table.Rows[0][4].ToString()); C.count = int.Parse(table.Rows[0][5].ToString()); C.author = table.Rows[0][6].ToString(); C.genre = table.Rows[0][7].ToString(); C.publish = table.Rows[0][8].ToString(); C.artist = table.Rows[0][9].ToString(); URLTextBox.Text = C.PicURL; pictureBox1.Load(URLTextBox.Text); NameField.Text = C.name_comic; AuthorField.Text = C.author; DescriptionField.Text = C.description; PriceField.Text = C.price.ToString(); GenreField.Text = C.genre; PublishField.Text = C.publish; ArtistField.Text = C.artist; CountField.Text = C.count.ToString(); } } }
//кнопка предыдущая страница считывает из таблицы orders данные о заказе и из таблицы comics данные о комиксах имеющихся в заказе и отображает соответствующие странице 4 товара. private void button3_Click(object sender, EventArgs e) { UsersDB db = new UsersDB(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command = new MySqlCommand("SELECT * FROM `orders`", db.getConnection()); if (1 < currentPage) { for (int j = 0; j < 4; j++) { P[j].pan.Visible = false; } currentPage--; Pages.Text = currentPage.ToString(); int i = (currentPage * 4) - 4; for (; i <= (currentPage * 4 - 1); i++) { if (i < orderTable.Rows.Count) { C[i] = new ComicClass(); C[i].ID = int.Parse(orderTable.Rows[i][0].ToString()); C[i].price = int.Parse(orderTable.Rows[i][3].ToString()); Dictionary <int, int> M = UserData.Bascket.GetIds(orderTable.Rows[i][1].ToString()); int j = 0; foreach (KeyValuePair <int, int> kvp in M) { command = new MySqlCommand("SELECT * FROM `comics` WHERE `id_c` = @id", db.getConnection()); command.Parameters.Add("@id", MySqlDbType.VarChar).Value = kvp.Key; db.openConnection(); adapter.SelectCommand = command; adapter.Fill(table); C[i].genre += table.Rows[0][2] + " " + kvp.Value.ToString() + "; "; table.Clear(); j++; } } } for (int j = 0; j < 4; j++) { if ((j + currentPage * 4 - 4) < orderTable.Rows.Count) { ShowPan(P[j], C[j + currentPage * 4 - 4]); } } } }
//Отображение корзины при загрузке формы private void BasketForm_Load(object sender, EventArgs e) { UsersDB db = new UsersDB(); MySqlDataAdapter adapter = new MySqlDataAdapter(); //вычисление количества страниц в корзине. if (UserData.Bascket.CountProducts % 4 == 0) { countOfPages = (UserData.Bascket.CountProducts / 4); } else { countOfPages = ((UserData.Bascket.CountProducts / 4) + 1); } C = new ComicClass[UserData.Bascket.CountProducts]; Pages.Text = currentPage.ToString(); //заполнение P элементами формы BasketForm для последующего отображения в них информации о соответствующих товарах. P[0] = new ProductPanelClass(); P[0].pan = Product1Pan; P[0].name = Product1Name; P[0].price = Product1Price; P[0].count = Product1count; P[0].pic = Product1Pic; P[1] = new ProductPanelClass(); P[1].pan = Product2Pan; P[1].name = Product2Name; P[1].price = Product2Price; P[1].count = Product2count; P[1].pic = Product2Pic; P[2] = new ProductPanelClass(); P[2].pan = Product3Pan; P[2].name = Product3Name; P[2].price = Product3Price; P[2].count = Product3count; P[2].pic = Product3Pic; P[3] = new ProductPanelClass(); P[3].pan = Product4Pan; P[3].name = Product4Name; P[3].price = Product4Price; P[3].count = Product4count; P[3].pic = Product4Pic; int i = 0; //заполнение С значениями из таблицы comics на основе ID имеющихся в корзине-словариуке пользователя UserData.Basket.OrderIdCount . foreach (KeyValuePair <int, int> kvp in UserData.Bascket.OrderIdCount) { if (i < UserData.Bascket.CountProducts) { MySqlCommand command = new MySqlCommand("SELECT * FROM `comics` WHERE `id_c` = @id", db.getConnection()); command.Parameters.Add("@id", MySqlDbType.VarChar).Value = kvp.Key; adapter.SelectCommand = command; adapter.Fill(comicTable); C[i] = new ComicClass(); C[i].ID = int.Parse(comicTable.Rows[i][0].ToString()); C[i].PicURL = comicTable.Rows[i][1].ToString(); C[i].name_comic = comicTable.Rows[i][2].ToString(); C[i].description = comicTable.Rows[i][3].ToString(); C[i].price = int.Parse(comicTable.Rows[i][4].ToString()); C[i].count = kvp.Value; C[i].author = comicTable.Rows[i][6].ToString(); C[i].genre = comicTable.Rows[i][7].ToString(); sum += kvp.Value * int.Parse(comicTable.Rows[i][4].ToString()); } i++; } //отображение 4х товаров корзины, соответствующих данной странице на экран. if (i > 0) { for (int j = 0; j < 4; j++) { if (j < UserData.Bascket.CountProducts) { ShowPan(P[j], C[j]); } } } sumlabel.Text = sum.ToString() + "$"; UserData.Bascket.sum = sum; }
private void OrderListForm_Load(object sender, EventArgs e) { //считывание информации о заказах в таблицу. UsersDB db = new UsersDB(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command = new MySqlCommand("SELECT * FROM `orders`", db.getConnection()); adapter.SelectCommand = command; adapter.Fill(orderTable); C = new ComicClass[orderTable.Rows.Count]; //подсчет количества страниц заказов. if (orderTable.Rows.Count % 4 == 0) { countOfPages = orderTable.Rows.Count / 4; } else { countOfPages = (orderTable.Rows.Count / 4) + 1; } Pages.Text = currentPage.ToString(); //присвоение массиву Р элементов формы. P[0] = new ProductPanelClass(); P[0].pan = Product1Pan; P[0].name = Product1Name; P[0].price = Product1Price; P[0].genre = Product1names; P[1] = new ProductPanelClass(); P[1].pan = Product2Pan; P[1].name = Product2Name; P[1].price = Product2Price; P[1].genre = Product2names; P[2] = new ProductPanelClass(); P[2].pan = Product3Pan; P[2].name = Product3Name; P[2].price = Product3Price; P[2].genre = Product3names; P[3] = new ProductPanelClass(); P[3].pan = Product4Pan; P[3].name = Product4Name; P[3].price = Product4Price; P[3].genre = Product4names; //занесение информации о каждом заказе из таблицы в массив С for (int i = 0; i < orderTable.Rows.Count; i++) { if (i < orderTable.Rows.Count) { C[i] = new ComicClass(); C[i].genre = ""; C[i] = new ComicClass(); C[i].ID = int.Parse(orderTable.Rows[i][0].ToString()); C[i].price = int.Parse(orderTable.Rows[i][3].ToString()); //расшифровка строки в словарь со значениями <ID, количество>. Dictionary <int, int> M = UserData.Bascket.GetIds(orderTable.Rows[i][1].ToString()); int j = 0; foreach (KeyValuePair <int, int> kvp in M) { //формирования строки с названиями и количеством комиксов в данном заказе. command = new MySqlCommand("SELECT * FROM `comics` WHERE `id_c` = @id", db.getConnection()); command.Parameters.Add("@id", MySqlDbType.VarChar).Value = kvp.Key; db.openConnection(); adapter.SelectCommand = command; adapter.Fill(table); C[i].genre += table.Rows[0][2] + " " + kvp.Value.ToString() + "; "; table.Clear(); j++; } //отображение первых 4х заказов в форму. if (i < 4) { ShowPan(P[i], C[i]); } } } }