|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Приветствую ВСЕХ! есть datagridview, заполняю данными из запроса, запрос типа Select aaa,bbb,xxx_0,zzz_0,xxx_1,zzz_1..... и так далее запрос возвращает около 1к записей и загрузка длится приблизительно 5-10 секунд, данные из запроса читаются почти моментально. Вопрос как ускорить работу грида? если пойти путем Биндинга данных, как реализовать связывание с объектом состоящим из списка полей? (типа class x{list<z> zz} class z{public int a; public string b; ....}) пример заполнения грида gridView.Rows.Add(); gridView.Rows[gridView.Rows.Count - 1].Cells[0].Style.BackColor = System.Drawing.Color.FromArgb(235, 235, 235); gridView.Rows[gridView.Rows.Count - 1].Cells[1].Style.BackColor = System.Drawing.Color.FromArgb(235, 235, 235); gridView.Rows[gridView.Rows.Count - 1].Cells[2].Style.BackColor = System.Drawing.Color.FromArgb(235, 235, 235); gridView.Rows[gridView.Rows.Count - 1].Cells[0].Value = false; gridView.Rows[gridView.Rows.Count - 1].Cells[1].Value = reader["aaa"].ToString(); gridView.Rows[gridView.Rows.Count - 1].Cells[2].Value = reader["bbb"].ToString(); int temp = 0; for (int i = 0; i < list.Count; i++) { gridView.Rows[gridView.Rows.Count - 1].Cells[3 + i].ReadOnly = (reader["xxx_" + list[i].ToString()] == DBNull.Value); gridView.Rows[gridView.Rows.Count - 1].Cells[3 + i].Style.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; if (!gridView.Rows[gridView.Rows.Count - 1].Cells[3 + i].ReadOnly) { gridView.Rows[gridView.Rows.Count - 1].Cells[3 + i].Value = reader["zzz_" + list[i].ToString()].ToString(); } } ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:11 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Mixon, Определенно, разбить на страницы. 5-10 секунд... Не каждый захочет ждать столько. Это не юзер-фриендли, да и на какой столько строк сразу выводить? Еще лучше - поиск по ключевым полям забацать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:13 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Mixon пример заполнения грида gridView.Rows.Add(); ... Не пробовали так? gridView.DataSource = new BindingList<ИМЯ_КЛАССА>(Запрос, возвращающий IEnumerable<ИМЯ_КЛАССА>) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:19 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Arm79Mixon пример заполнения грида gridView.Rows.Add(); ... Не пробовали так? gridView.DataSource = new BindingList<ИМЯ_КЛАССА>(Запрос, возвращающий IEnumerable<ИМЯ_КЛАССА>) как C# это поймет? class x { public list<z> zz } class z { public int a; public string b; .... } gridView.DataSource = new BindingList<x>(Запрос, возвращающий IEnumerable<ИМЯ_КЛАССА>) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:30 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Mixon, Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:34 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Mixon, Что мешает сделать джойн? Не это нужно? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:46 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Попробую, спасибо! Arm79Mixon, Что мешает сделать джойн? Не это нужно? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 16:03 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Забавно как все-таки некоторые люди упорно выбирают неверную дорогу: на пути они теряют коней, переходят вброд озера, перелезают через скалы, ломают руки-ноги, но они упорно выбирают неверный путь. Потому что в голове у них... Да кто ж его знает что у них там... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 16:18 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
проблема была в MixonПриветствую ВСЕХ! есть datagridview, заполняю данными из запроса, запрос типа Select aaa,bbb,xxx_0,zzz_0,xxx_1,zzz_1..... и так далее запрос возвращает около 1к записей и загрузка длится приблизительно 5-10 секунд, данные из запроса читаются почти моментально. Вопрос как ускорить работу грида? если пойти путем Биндинга данных, как реализовать связывание с объектом состоящим из списка полей? (типа class x{list<z> zz} class z{public int a; public string b; ....}) пример заполнения грида Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 16:38 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
Mixon, gridView.Rows[gridView.Rows.Count - 1].Cells[3 + i].Style.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 16:39 |
|
datagridview (скорость заполнения таблицы)
|
|||
---|---|---|---|
#18+
MixonMixon, gridView.Rows[gridView.Rows.Count - 1].Cells[3 + i].Style.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; Ах, так вот оно в чем проблема-то была оказывается! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 17:20 |
|
|
start [/forum/topic.php?fid=20&msg=38900157&tid=1401817]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 340ms |
total: | 461ms |
0 / 0 |