Vb.net | как фильтровать/искать базу данных с помощью datagridview
Привет Кодеры,
Не могли бы вы помочь найти код для моей проблемы? Я хочу отфильтровать свою базу данных, используя другую таблицу или datagridview, а не обычное текстовое поле.
Таблица 1:
(Column)Name Surname Name1 Surname1 Name2 Surname2 Name3 Surname3
Таблица 2: (Параметр Поиска)
(Column)Name Surname Name1 Surname1
Ожидаемые результаты в Таблице 1 приведены ниже:
(Column)Name Surname Name1 Surname1
Любая помощь будет оценена по достоинству. Мой приведенный ниже код показывает только первую строку.
Что я уже пробовал:
Я пробовал использовать for loop.
For i as integer = 0 To dgv2.rowcount -1 Dim query as string = "SELECT * From db_table WHERE Name LIKE '%" & dgv2.rows(i).cells(0).value &"'" Dim comm as new sqlcommand(query,conn) dim adapter as new sqladapter(comm) dim table as new datatable() adapter.fill(table) dgv1.datasource = table
Richard Deeming
Dim query as string = "SELECT * From db_table WHERE Name LIKE '%" & dgv2.rows(i).cells(0).value &"'"
Не делай этого так!
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Const query As String = "SELECT * FROM db_table WHERE Name LIKE @Name" Dim comm as New SqlCommand(query, conn) comm.Parameters.AddWithValue("@Name", "%" & dgv2.rows(i).cells(0).value & "%")