问题:我有一个【A】表,其中有5列数据是需要动态地从【规格明细】表中查询到【part_no】列一样的行,将【规格明细】表中相关的列值在表【A】中显示,目前我用像下面这样的代码方案处理,发现如果【A】表数据少时会很快就可以显示,但如果A】表数据中的数据多时(几千到万以上)就显得比较慢,请问有没更好的方案处理?
【A】表的AfterLoad事件代码:
Dim drs1 As List(of DataRow) = e.DataTable.Select("[part_no] is not null")
If drs1.Count > 0 Then
For Each dr2 As DataRow In drs1
Dim dr1 As DataRow = DataTables("规格明细").SQLFind("part_no = '" & dr2("part_no") & "'")
If dr1 IsNot Nothing Then
dr2("产品编码")=dr1("item_no")
dr2("产品类别")=dr1("type_name")
dr2("产品名称")=dr1("part_name")
dr2("产品规格")=dr1("part_spec")
dr2("工程BOM单据状态")=dr1("sheet_sta")
Else
dr2("产品编码")=Nothing
dr2("产品类别")=Nothing
dr2("产品名称")=Nothing
dr2("产品规格")=Nothing
dr2("工程BOM单据状态")=Nothing
End If
Next
End If