Фильтр списка данных с помощью элемента управления datagridview ячейки
Я хочу, чтобы отфильтровать данные списка по использования datagridview ячейки вместо того, чтобы использовать текстовое поле.
Что я уже пробовал:
private void searchLedger(string value) { cn.Open(); SqlCommand cmd = new SqlCommand("Select * from LedgerCreation Where ledgerName like '%" + value + "%' and AddClassification =@AddClassification order by LedgerName", cn); cmd.Parameters.AddWithValue("@AddClassification", "Cash/Bank"); //SqlCommand cmd = new SqlCommand(searchquery, cn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable table = new DataTable(); da.Fill(table); LstReceipt.DataSource = table; LstReceipt.DisplayMember = "LedgerName"; cn.Close();
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridView1.CurrentCell.ColumnIndex == 1) { searchLedger(dataGridView1.CurrentRow.Cells[0].FormattedValue.ToString()); } }
Richard Deeming
new SqlCommand("Select * from LedgerCreation Where ledgerName like '%" + value + "%' and AddClassification =@AddClassification order by LedgerName", cn);
Не делай этого так!
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Вы уже знаете, как использовать параметры - вы сделали это для
AddClassification
фильтр.SqlCommand cmd = new SqlCommand("Select * from LedgerCreation Where ledgerName like @LedgerName and AddClassification = @AddClassification order by LedgerName", cn); cmd.Parameters.AddWithValue("@AddClassification", "Cash/Bank"); cmd.Parameters.AddWithValue("@LedgerName", "%" + value + "%");
Maciej Los
Мой виртуальный 5!
Member 13608869
хорошо я по ошибке использовал его таким образом
Member 13608869
сэр, как я использую этот запрос.
Когда я набираю ячейку datagridview, я хочу, чтобы это были данные списка фильтров