用vb6填写数据表
我不熟悉vb6,因为我总是使用vb2010。我正在调试一个在vb6中运行的清单软件,无法找到如何使用记录集填充数据列表控件 该软件使用此代码,它使用列表框用vb6填写数据表,vb6,Vb6,我不熟悉vb6,因为我总是使用vb2010。我正在调试一个在vb6中运行的清单软件,无法找到如何使用记录集填充数据列表控件 该软件使用此代码,它使用列表框 with rs if .RecordCount then .MoveLast .MoveFirst For Counter=1 to .RecordCount Me.ListBox1.AddItem rs!ProductName
with rs
if .RecordCount then
.MoveLast
.MoveFirst
For Counter=1 to .RecordCount
Me.ListBox1.AddItem rs!ProductName
.MoveNext
Next
End If
.Close
End With
但是软件数据库现在有上千种产品,而且程序加载数据的速度非常慢 所以我试了一下:
Using Datalist
With DataList1
Set .RowSource = rs
.ListField = "ProductName"
End With
我的代码运行时没有错误,但控件中不会显示任何数据
谁能帮我解决这个问题。
提前感谢您问题在于
MoveLast
调用,该调用仅为了填充RecordCount
而对整个记录集进行迭代。改用这个:
With rs
Do While Not rs.eof
Me.ListBox1.AddItem rs!ProductName
.MoveNext
Loop
.Close
End With
此代码将通过删除不必要的记录集遍历来加快调用速度,但在列表框中包含数千项是一个设计/可用性问题,加速加载无法解决。旧代码正确加载数据,而您的代码则不能。您可以使用一些批量加载技巧使其更快一些。一个快速的解决方法是问自己这样一个问题:是否有必要将所有产品加载到内存中?