Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用DataReader vb.net填充listview_Vb.net_Winforms_Listview - Fatal编程技术网

使用DataReader vb.net填充listview

使用DataReader vb.net填充listview,vb.net,winforms,listview,Vb.net,Winforms,Listview,我必须对有性能问题的应用程序进行一些修改。 我运行了探查器,其中一个问题是: 进行sql查询并将其存储在DataReader中。 查询返回大约2000行 然后开始一段时间的循环 Dim monSQL作为IDataReader monSQL=一个SQL查询 在monSQL.Read时执行此操作 strArray(0)= strArray(1)= strArray(2)= strArray(3)=monSQL(“某物”)。ToString strArray(4)=monSQL(“某物”)。ToStr

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

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

然后开始一段时间的循环

Dim monSQL作为IDataReader
monSQL=一个SQL查询
在monSQL.Read时执行此操作
strArray(0)=
strArray(1)=
strArray(2)=
strArray(3)=monSQL(“某物”)。ToString
strArray(4)=monSQL(“某物”)。ToString
strArray(5)=monSQL(“某物”)。ToString
如果不是IsDBNull(monSQL(“某物”)),那么
strArray(6)=(monSQL(“某物”))
strArray(7)=monSQL(“某物”)。ToString
strArray(8)=monSQL(“某物”)。ToString
strArray(9)=monSQL(“某物”)。ToString
strArray(10)=monSQL(“某物”)。ToString
如果结束
objListItem=新的ListViewItem(strArray)
objListItem.Tag=lngNoLot
ListView.Items.Add(objListItem)
环
在while循环中,数据插入到listview中

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


我可以选择什么来加快速度?

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

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

如果您填写一个DataTable,您可以将其用作DataGridview的数据源,并节省大量时间和代码。我是否仍然能够在每行的开头有一个复选框来选择某一行?问题不在于插入该项。即使我对while循环中的所有内容都进行了注释,即不向列表中添加任何内容,也需要相同的时间。ListView对于查看DB数据来说是次优的—您实际上是在制作数据的字符串副本—以及许多子项—以添加到LV中。