Загрузка...

Кто поможет сделать поиск и фильтрацию

Тема в разделе C# создана пользователем mishkastussy 22 мар 2023. 142 просмотра

Загрузка...
  1. mishkastussy
    mishkastussy Автор темы 22 мар 2023 Привет 246 25 апр 2021
    Кто поможет тому денег скину.
    Реализовать поиск и фильтрацию.
    поиск без кнопки через textbox. фильтрация через combobox
    Запрос правильный. я вписываю оно обновляется, но остаются все товары, а через бд все нормально показывается
    CSHARP
    Title = $"select * from Service where Title like '%{textBox1.Text}%' ";
    [IMG]
     
    22 мар 2023 Изменено
  2. feiserak
    feiserak 22 мар 2023 94 31 май 2013
    А шо за компонент то выводит их сюда, дай код
     
    1. mishkastussy Автор темы
      feiserak,
      CSHARP
      public partial class ControlProductList : UserControl
      {
      int ID;
      string Title;
      int Cost;
      int DurationInSeconds;
      string Description;
      int Discount;
      string MainImagePath;

      string Start = Environment.CurrentDirectory;

      public ControlProductList(int ID, string Title, int Cost, int DurationInSeconds, string Description, int Discount,string MainImagePath)
      {
      InitializeComponent();
      this.ID = ID;
      this.Title = Title;
      this.Cost = Cost;
      this.DurationInSeconds = DurationInSeconds;
      this.Description = Description;
      this.Discount = Discount;
      this.MainImagePath = MainImagePath;

      label5.Text = Title;
      textBox1.Text = Description;

      button1.Visible = false;

      label1.Text = Discount + "%";
      if (Discount > 0)
      {
      string g = Encoding.UTF8.GetString(new byte[] { 204, 182 });

      label8.Text = (string.Join(g, $"{Cost}".AsEnumerable()).Insert(0, g));
      decimal ad = (decimal.Parse(Cost.ToString()) / 100 * Discount);

      label9.Text = $"{Cost - ad}";
      }
      else
      {
      label8.Text = $"{Discount}";
      label9.Text = $"";
      }

      try
      {
      pictureBox1.Image = Image.FromFile(Start + $@"\Услуги школы\{MainImagePath}");
      }
      catch
      {
      pictureBox1.Image = Image.FromFile(Start + $@"\Услуги школы\picture.jpg");
      }


      }
      string[] OderData = { };

      private void button3_Click(object sender, EventArgs e)
      {
      Редактирование red = new Редактирование();
      red.id = ID;
      red.title = Title;
      red.Cost = Cost;
      red.DurationInSeconds = DurationInSeconds.ToString();
      red.Discount = Discount.ToString();
      red.Description = Description;
      red.MainImagePath = MainImagePath;
      this.Hide();
      red.Show();
      red.show();
      }

      private void button2_Click(object sender, EventArgs e)
      {
      string connectionString = @"Data Source=DESKTOP-53JMJ9S\SQLEXPRESS;Initial Catalog=pr3;Integrated Security=True";

      try
      {
      SqlConnection con = new SqlConnection(connectionString);
      con.Open();
      DataSet ds = new DataSet();
      string del = $"DELETE from Service where ID = {ID}";
      SqlDataAdapter adp = new SqlDataAdapter(del, con);
      adp.Fill(ds);
      con.Close();
      MessageBox.Show("Материал удалён!");
      Главная fm1 = new Главная();
      fm1.adm = "0000";
      fm1.Show();
      this.Hide();
      }
      catch
      {
      MessageBox.Show("Ошибка при удалении!");
      }
      }

      private void button4_Click(object sender, EventArgs e)
      {
      Запись_на_услугу zap = new Запись_на_услугу();
      zap.id = ID;
      zap.title = Title;
      zap.DurationInSeconds = DurationInSeconds.ToString();
      this.Hide();
      zap.Show();
      zap.show();
      }
      }
      вывод

      CSHARP
      public async void PoductShow()
      {
      DataSet ProductDataSet = new DataSet();
      DataTable ProductDataTable = new DataTable();
      List<ControlProductList> ControlProductList = new List<ControlProductList>();
      ControlProductList[] ControlProductListArr = { };

      await Task.Run(() =>
      {
      ProductDataSet = SQL.Table($@"SELECT [ID]
      ,[Title]
      ,[Cost]
      ,[DurationInSeconds]
      ,[Description]
      ,[Discount]
      ,[MainImagePath]
      FROM [Service] {Title}");
      if (ProductDataSet.Tables.Count <= 0)
      {
      MessageBox.Show("Что то пошло не так");
      return;
      }
      ProductDataTable = ProductDataSet.Tables[0];

      for (int i = 0; i < ProductDataTable.Rows.Count; i++)
      {
      var Product = ProductDataTable.Rows[i].ItemArray.Select(x => x.ToString()).ToArray();
      ControlProductList controlProductLists = new ControlProductList(int.Parse(Product[0]), Product[1], int.Parse(Product[2]), int.Parse(Product[3]), Product[4], int.Parse(Product[5]), Product[6]);
      controlProductLists.Dock = DockStyle.Top;
      controlProductLists.Name = "controlProductLists" + i;
      ControlProductList.Add(controlProductLists);

      }
      ControlProductListArr = ControlProductList.ToArray();
      });

      panel6.Controls.Clear();
      panel6.Visible = false;
      panel6.SuspendLayout();
      panel6.Controls.AddRange(ControlProductListArr);
      await Task.Delay(100);
      panel6.Visible = true;
      panel6.ResumeLayout();
      }
  3. feiserak
    feiserak 22 мар 2023 94 31 май 2013
    Так ты просто запрос в PoductShow() поменяй, и туда подавай эту строку поисковую разве так не проще будет?
     
  4. vtlstolyarov
    vtlstolyarov 22 мар 2023 474 8 янв 2022
    CSHARP
    Title = $"select * from Service where Title like '%{textBox1.Text}%' ";
    CSHARP
    ProductDataSet = SQL.Table($@"SELECT [ID]
    ,[Title]
    ,[Cost]
    ,[DurationInSeconds]
    ,[Description]
    ,[Discount]
    ,[MainImagePath]
    FROM [Service] {Title}");
    твой итоговый запрос будет
    SQL
    SELECT [ID]
    ,[Title]
    ,[Title],[Cost]

    ,[DurationInSeconds]

    ,[Description]

    ,[Discount]

    ,[MainImagePath]

    FROM [Service] {Title}
     
Top