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 STYLE_CODE, `DESC`, FAB_CONS, DATE_CREAT, LAST_ORD, QTY_ORD, GRAPHIC, NOTES1, NOTES2, NOTES3 FROM style

但这些都不能帮助我加快列表视图的填充速度。谢谢你。

4

1 回答 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
于 2013-08-08T05:52:53.217 回答