以下是我这边盘点核销的部分代码逻辑。盘点单据的数据量 上万行;syms中符合条件的数据也有几万行。 这样我再执行下列代码是速度非常非常慢。请问有无优化 方案?
pd = DataTables("盘点单据").SQLFind("[盘点部门] = '" & yh("所属部门") & "'and [盘点单号] = '" & txt & "'") '找出本次盘点单据的盘点数据
DataTables("盘点单据").SQLReplaceFor("审核人", dr("姓名"), "[盘点部门] = '" & yh("所属部门") & "'and [盘点单号] = '" & txt & "'")
DataTables("盘点单据").SQLReplaceFor("审核日期", Date.Now, "[盘点部门] = '" & yh("所属部门") & "'and [盘点单号] = '" & txt & "'")
Dim syms As List(of DataRow) = DataTables("溯源码").SQLSelect("当前所在部门 = '" & yh("所属部门") & "' And 是否可用 = 1") '找到本部门可用溯源码的行
For Each sym As DataRow In syms
fr = DataTables("盘点单据").SQLFind("[溯源码] = '" & sym("子溯源码") & "'") '溯源码表中的溯源码是否存在与盘点单据
If fr IsNot Nothing Then
sym("是否可用") = 1
Else
Dim wb As Row = Tables("外部出库").AddNew()
sym("是否可用") = 0
wb("溯源码" ) = sym("子溯源码")
wb("出库部门") = sym("当前所在部门")
wb("出库时间") = Date.Now
wb("单据类型") = "销售单"
wb("是否拆箱") = sym("是否拆箱")
wb("出库人") = yh("姓名")
wb("核销人") = dr("姓名")
End If
Next