using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Демо { public partial class Каталог : Form { public Каталог() { InitializeComponent(); SqlConnection cn; Program.conn(out cn); Program.Role.id = 0; SqlDataAdapter da = new SqlDataAdapter(); DataTable table = new DataTable(); buttonBack.Visible = false; SqlCommand command = new SqlCommand("select * from Услуги", cn); da.SelectCommand = command; da.Fill(table); Program.Role.table = table; if (table.Rows.Count % 4 == 0) strLab.Text = "/ " + (table.Rows.Count / 4).ToString(); else strLab.Text = "/ " + (table.Rows.Count / 4 + 1).ToString(); Fill(); } private void Fill() { DataTable table = new DataTable(); table = Program.Role.table; Label[] LB; PictureBox[] PB; TableLayoutPanel[] TB; int q = 0; LB = new Label[] { label1, label2, label3, label4 }; PB = new PictureBox[] { pic1, pic2, pic3, pic4 }; TB = new TableLayoutPanel[]{ tLP1, tLP2,tLP3,tLP4 }; int n = 4; pic1.Visible = true; strLab.Visible = true; strNum.Visible = true; for (int i = 0; i < n; i++) { if (strNum.Text == strLab.Text.Substring(2)) { buttonNext.Visible = false; if (strNum.Text.Equals("1")) buttonBack.Visible = false; else buttonBack.Visible = true; if (table.Rows.Count % 4 != 0) { if ((table.Rows.Count % 4 <= 3) && (q == 0)) { tLP4.Visible = false; n--; } if ((table.Rows.Count % 4 <= 2) && (q == 0)) { tLP3.Visible = false; n--; } if ((table.Rows.Count % 4 <= 1) && (q == 0)) { tLP2.Visible = false; n--; } if ((table.Rows.Count == 0) && (q == 0)) { tLP1.Visible = false; n--; } q++; } } else { if (strNum.Text.Equals("1")) buttonBack.Visible = false; else buttonBack.Visible = true; tLP1.Visible = true; tLP2.Visible = true; tLP3.Visible = true; tLP4.Visible = true; if (strLab.Text.Equals("/ 1")) buttonNext.Visible = false; else buttonNext.Visible = true; } if (table.Rows.Count != 0) { LB[i].Text = table.Rows[Program.Role.id]["Наименование"].ToString() + "\n\n"; if (table.Rows[Program.Role.id]["Скидка"].ToString() != "") { LB[i].Text += table.Rows[Program.Role.id]["Стоимость_руб"].ToString(); LB[i].Text += " " + (Convert.ToInt32(table.Rows[Program.Role.id]["Стоимость_руб"]) - (Convert.ToInt32(table.Rows[Program.Role.id]["Стоимость_руб"]) * (Convert.ToDouble(table.Rows[Program.Role.id]["Скидка"])))).ToString(); TB[i].BackColor = Color.LightGreen; } else { LB[i].Text += table.Rows[Program.Role.id]["Стоимость_руб"].ToString(); TB[i].BackColor = Color.White; } LB[i].Text += " рублей за " + table.Rows[Program.Role.id]["Длительность_мин"].ToString() + " минут \n"; if (table.Rows[Program.Role.id]["Скидка"].ToString() != "") LB[i].Text += "* скидка " + (Convert.ToDouble(table.Rows[Program.Role.id]["Скидка"]) * 100) + "%"; string img = table.Rows[Program.Role.id]["Изображение"].ToString().Trim(); if ((img == "не указано") || (img == "отсутствует")) PB[i].Image = new Bitmap("products\\net.jpg"); else PB[i].Image = new Bitmap(img); Program.Role.id++; } else { if ((table.Rows.Count % 4 <= 3) && (q == 0)) { tLP4.Visible = false; n--; } if ((table.Rows.Count % 4 <= 2) && (q == 0)) { tLP3.Visible = false; n--; } if ((table.Rows.Count % 4 <= 1) && (q == 0)) { tLP2.Visible = false; n--; } if ((table.Rows.Count == 0) && (q == 0)) { pic1.Visible = false; label1.Text = "По вашему запросу ничего не найдено"; buttonBack.Visible = false; buttonNext.Visible = false; strLab.Visible = false; strNum.Visible = false; n--; } q++; break; } } q = 0; } private void buttonNextAndBackGrid_Click(object sender, EventArgs e) { DataTable table = new DataTable(); string name = (sender as Button).Name; table = Program.Role.table; if (name == "buttonBack") { if (strNum.Text == strLab.Text.Substring(2)) { if (table.Rows.Count % 4 == 0) Program.Role.id -= 8; // 4 из 4 if (table.Rows.Count % 4 == 1) Program.Role.id -= 5; // 1 из 4 if (table.Rows.Count % 4 == 2) Program.Role.id -= 6; // 2 из 4 if (table.Rows.Count % 4 == 3) Program.Role.id -= 7; // 3 из 4 } else { Program.Role.id -= 8; } tLP1.Visible = true; tLP2.Visible = true; tLP3.Visible = true; tLP4.Visible = true; strNum.Text = (Convert.ToInt32(strNum.Text) - 1).ToString(); } else strNum.Text = (Convert.ToInt32(strNum.Text) + 1).ToString(); Fill(); } private void strNum_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if ((Convert.ToInt32(strNum.Text) > 0) && (Convert.ToInt32(strNum.Text) <= Convert.ToInt32(strLab.Text.Substring(2)))) { if (Convert.ToInt32(strNum.Text) >= 4) { buttonBack.Visible = true; } Program.Role.id = (Convert.ToInt32(strNum.Text) - 1) * 4; } else { strNum.Text = "1"; Program.Role.id = 0; MessageBox.Show("Введите число в диапозоне от 0 до " + strLab.Text.Substring(2), "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning); } Fill(); } } private void Sorts_SelectedIndexChanged(object sender, EventArgs e) { DataTable table = new DataTable(); switch (Sorts.Text) { case "Цена +": Program.Role.table.DefaultView.Sort = " Стоимость_руб ASC"; break; case "Цена -": Program.Role.table.DefaultView.Sort = " Стоимость_руб DESC"; break; case "Наименование +": Program.Role.table.DefaultView.Sort = "Наименование ASC"; break; case "Наименование -": Program.Role.table.DefaultView.Sort = "Наименование DESC"; break; case "Длительность +": Program.Role.table.DefaultView.Sort = "Длительность_мин ASC"; break; case "Длительность -": Program.Role.table.DefaultView.Sort = "Длительность_мин DESC"; break; } strNum.Text = "1"; Program.Role.id = 0; Program.Role.table = Program.Role.table.DefaultView.ToTable(true); Fill(); } private void Каталог_FormClosing(object sender, FormClosingEventArgs e) { Program.mainf = null; } private void textBox1_TextChanged(object sender, EventArgs e) { try { SqlConnection dbConnection; Program.conn(out dbConnection); SqlDataAdapter da = new SqlDataAdapter(); DataTable table = new DataTable(); string strok = textBox1.Text; strNum.Text = "1"; string SqlText = "select * from Услуги"; if (textBox1.Text != "") SqlText = SqlText + " where (Наименование Like \'%" + strok + "%\' or Стоимость_руб like \'%" + strok + "%\' or Длительность_мин like \'%" + strok + "%\')"; SqlCommand command = new SqlCommand(SqlText, dbConnection); da.SelectCommand = command; da.Fill(table); Program.Role.table = table; Program.Role.id = 0; if (table.Rows.Count % 4 == 0) strLab.Text = "/ " + (table.Rows.Count / 4).ToString(); else strLab.Text = "/ " + (table.Rows.Count / 4 + 1).ToString(); Fill(); } catch { MessageBox.Show("Избегайте символа ' ", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBox1.Text = ""; } } private void label1_Click(object sender, EventArgs e) { } } }