Member 13608869 Ответов: 0

Фильтр списка данных с помощью элемента управления 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, я хочу, чтобы это были данные списка фильтров

0 Ответов