使用DataReader vb.net填充列表视图

时间:2015-06-04 16:32:15

标签: vb.net winforms listview

我必须对有性能问题的应用程序进行一些修改。 我运行了探查器,其中一个问题是:

进行SQL查询并将其存储在DataReader中。 查询返回大约2000行。

然后启动while循环

Dim monSQL as IDataReader 
monSQL = a SQL Query

Do While monSQL.Read
  strArray(0) = 
  strArray(1) = 
  strArray(2) = 
  strArray(3) = monSQL("Something").ToString
  strArray(4) = monSQL("Something").ToString
  strArray(5) = monSQL("Something").ToString

  If Not IsDBNull(monSQL("Something")) Then
    strArray(6) = (monSQL("Something"))
    strArray(7) = monSQL("Something")).ToString
    strArray(8) = monSQL("Something").ToString
    strArray(9) = monSQL("Something").ToString
    strArray(10) = monSQL("Something").ToString
  End If

  objListItem = New ListViewItem(strArray)
  objListItem.Tag = lngNoLot
  ListView.Items.Add(objListItem)
Loop

在while循环中,数据将插入listview

完成循环需要相当长的时间(约10秒)

我有什么选择让事情变得更快?

1 个答案:

答案 0 :(得分:1)

尝试在循环更新期间暂停任何绘图:

listView1.BeginUpdate()
// your loop
listView1.EndUpdate()