Я бы хотел отфильтровать DataGridView, используя Textbox, чтобы найти совпадения в существующем столбце, определенном ComboBox, в котором есть все имена столбцов в коллекции.
Например, если я выберу «Имя» вComboBox, а затем введите «S» в текстовом поле, DataGridView показывает только строки, в которых значение имени столбца начинается с «S», поэтому я получу «The StackOverFlow», «The Steak» и т. д.
Дело в том, что я не хочу запускать SQL-запрос каждый раз, когда фильтрую, поэтому я сохраню ресурсы.
Вот мой фактический код, где
ListProd
- это мой DataGridView CBFiltre
- это мой ComboBox tbRefChantier
- это мой TextBox ClassTables.Produits
- это мой DataSet, в котором есть КАЖДАЯ записьиз моей базы данных MariaDB
Private Sub tbRefChantier_TextChanged(sender As Object, e As EventArgs) Handles tbRefChantier.TextChanged
Try
ListeProd.DataSource = ClassTables.Produits.Tables("Produits").Select(CbFiltre.Text & " Like '%" & tbRefChantier.Text & "%'")
Catch Exc As Exception
MsgBox("Erreur logiciel :" & Chr(10) & Chr(10) & Exc.Message)
End Try
End Sub
Но когда я пытаюсь его отфильтровать, мой DataGridView показывает только
Но похоже, что на самом деле фильтр, так как количество строк меняется, когда я что-то набираю