Ускорить поиск строк DataGridView

Всем привет! Как правильно реализовать?

При загрузки формы получаем таблицу из БД MSSQL. Через Task.Run Сделал, чтобы форма не слипалась. Значения сразу после загрузки мне видеть не обязательно.

    private void Form2_Load(object sender, EventArgs e)
    {
        Task.Run(new Action(()=> { this.law_ActTableAdapter.Fill(this.dataSet1.Law_Act); }));
    }

Вся БД имеет 12 колонок и около 150к строчек ,а так же занимает 390мб памяти процессора(по VS)

Далее , мне необходимо получить только те строки, значения которые похожи на значения из текст боксов.

К примеру: вводим "Ивано" и он выдает нам строки со значением колонки 10: Ивано, Иванов, Иванович, Иваностин и т.д.

Так же и несколько заданных значение, к примеру:

Имя(10 колонка) - Иван
Фамилия(11 колонка) - Ивано
ID(1 колонка) - 3

И DataSet выдает:
3...Иван|Ивано
35..Иван|Иванович
и т.д.

    private void search_TextChanged(object sernder, EventArgs e)
    {
        try
        {
            
            Search.name = textBox12.Text;

            law_ActBindingSource.Filter = "name like '%{Search.name}%'"

        }
        catch (Exception ex){ MessageBox.Show(ex.Message); }
    }

Поиск осуществляется по каждому нажатию И в а н о в.

Суть проблема: скорость работы крайне низкая, ведь при нажатии на первую букву поиск будет начинаться по всей таблице заново.

Как можно ускорить этот процесс?


Ответы (0 шт):