Как ускорить заполнение listview в vb.net

0

Это код для заполнения списка

For i = 0 To ds.Tables(0).Rows.Count - 1
            For j = 0 To ds.Tables(0).Columns.Count - 1
                itemcoll(j) = ds.Tables(0).Rows(i)(j).ToString()
            Next
            Dim lvi As New ListViewItem(itemcoll)
            myLVstyle.Items.Add(lvi)
        Next

Я попытался использовать следующее:

myLVstyle.SuspendLayout()

        my code for populating listview

myLVstyle.ResumeLayout()

а также

myLVstyle.BeginUpdate()

        my code for populating listview

myLVstyle.EndUpdate()

Я использую mysql для базы данных, и это мой оператор select:

SELECT STYLE_CODE, 'DESC', FAB_CONS, DATE_CREAT, LAST_ORD, QTY_ORD, GRAPHIC, NOTES1, NOTES2, NOTES3 FROM style

Но это не помогает мне ускорить заполнение списка. Спасибо.

  • 0
    потому что так уродливо, разве вы не правы для каждого из них?
  • 0
    HI @Lectere, в чем разница между двумя?
Показать ещё 1 комментарий
Теги:
performance
listview

1 ответ

1
Лучший ответ

Вы должны сохранить:

BeginUpdate

и

EndUpdate

Если это не ускоряет работу, вам следует искать более быстрый SQL-сервер.

Один небольшой тест, который вы можете попробовать, заполняет список с таким же количеством случайных элементов и пропускает его из SQL. Таким образом, вы можете определить, является ли SQL узким местом...

Таким образом, вы получаете что-то вроде;

with myLVstyle
    .beginupdate()
    for each row as [rowtype] in ds.tables.rows
        for each col as [coltype] in row.colums
            dim NewLvi as listviewitem = .items.add(col.itemcoll)
        next
    next
    .endupdate()
end with
  • 0
    Ааа ладно, сэр, я попробую этот

Ещё вопросы

Сообщество Overcoder
Наверх
Меню