Datagridview загружается очень медленно. Как я могу его оптимизировать?DataGridView загружается очень медленно. Как оптимизировать добавление строк в DataGridView?
Datagridview имеет 4-5 тысяч рядов.
я должен генерировать DataGridView динамически по нескольким параметрам. (Данные из базы данных, № столбцов)
Я должен генерировать DataGridView как это вертикально из таблицы (идентификатор, имя, контактный) в базе данных. .
Column1
идентификатор
имя
контакт
Теперь может быть любое количество более пустых столбцов рядом с column1.
В настоящее время я следую этому подходу.
- Сначала добавьте все пустые столбцы.
- Затем добавьте по три строки в каждой итерации цикла для каждой строки (id, name, contact).
Я извлекаю данные из базы данных и передаю их как
List <string[]>
в функциюGenerateRows
.private void GenerateColumns(int colLen) { dataGridViewGenerate.Rows.Clear(); dataGridViewGenerate.Columns.Clear(); DataGridViewColumn col0 = new DataGridViewTextBoxColumn(); col0.HeaderText = "Employee No. & Name"; dataGridViewGenerate.Columns.Add(col0); for (int i = 0; i < colLen; i++) { DataGridViewColumn col = new DataGridViewTextBoxColumn { HeaderText = (_sTime.AddDays(i)).Day.ToString(CultureInfo.InvariantCulture) + " " + (_sTime.AddDays(i)).ToString("ddd") }; dataGridViewGenerate.Columns.Add(col); } private void GenerateRows(List<string[]> empList) { int len = empList.Count; for (int a = 0; a < len; a++) { string[] arr = empList[a]; //row 1 var row1 = new DataGridViewRow(); row1.Cells.Add(new DataGridViewTextBoxCell { Value = arr[0] }); dataGridViewGenerate.Rows.Add(row1); //row 2 var row2 = new DataGridViewRow(); row2.Cells.Add(new DataGridViewTextBoxCell { Value = arr[1] }); dataGridViewGenerate.Rows.Add(row2); //row3 var row3 = new DataGridViewRow(); row3.Cells.Add(new DataGridViewTextBoxCell { Value = arr[2] }); dataGridViewGenerate.Rows.Add(row3); } }
Я думал сделать процедуру в SQL, который создаст таблицу и заполнить его данными. Затем просто назначьте источник данных в datagridview.
Зачем вам загружать 4-5 тысячи строк? Как часто пользователь проверяет 4-5 тысяч строк. Если три столбца и могут читать каждую ячейку за 1 секунду, которая еще читается до 3 часов. Страница в 100 или 1000 строк за раз. – Paparazzi
Мне нужно создать этот тип данных, потому что работа с данными будет выполнена из этой сетки. – coding
Это будет очень утомительная задача для оператора ввода данных. – coding