我有一个逻辑运算,需要引用多个表的数据, 按照常规做法,我可以使用行的各单元格赋值方式进行,然后逐行处理, 但这种方式运行效率很低,我一个表的全部数据行运算一遍需要340多秒, 所以想改用字典方式,然后进行字典数据一次性写入处理,但由于多个表的使用,以及中间需要根据不同结果(IF)写入不同值的判断, 似乎字典方式感觉无从下手, 想请问是否有更好的方式, 谢谢!
以是中间一段程序:
Dim dr2n As DataRow = dt2.AddNew(1)
Dim dr3 As DataRow = dt3.Find("ResID ='" & Res & "'")
dr2n("Date") = Date.Today
If dr3 IsNot Nothing Then
dr2n("ProblemLocation") = dr3("适用于标准化后的班组名称") '班组
End If
dr2n("IssueNo") = QN
dr2n("DataSource") = "生产问题跟踪"
dr2n("NeedtoTrace") = True
dr2n("Registrant") = "系统" '登记人
dr2n("Transtype") = "R" '来源
'dr2n("NPI=1Mass=0") = dr1("") 'NPI
dr2n("WO") = dr1("WO") '工单号
dr2n("PartNumber") = dr1("PartNumber") '零件号
dr2n("OP") = dr1("OP") '工序号
dr2n("ResID") = dr1("ResID") '资源号
dr2n("WOQTY") = dr1("ACTQty_IN") '工序数
t = t + 1
If CmpTimePre > #1-1-2020# Then
Dim zy As Single '转移工序的时间
zy = ( CDate(dr1("Act_StartTime")) - CmpTimePre).TotalHours
If zy < 24 Then '上工序到本工序间的停留<24小时 (工序滞留超过1天)
dr2n("IssueType") = "上工序延误" '问题种类
dr2n("ResponsibleTeam") = ResCell '责任部门
Else
dr2n("IssueType") = "工序停滞" '问题种类
End If
Else
dr2n("IssueType") = "工序停滞" '问题种类
End If
dr2n("IssueDescription") = nr '问题描述
dr2n("IssueAffect") = "交期晚" '后果
dr2n("DelayHours") = yw '延误(Hrs)
'dr2n("Person责任人") = dr1("") '责任人
Dim dr4 As DataRow = DataTables("PartList").Find("PartNumber= '" & PN & "'")
If dr4 IsNot Nothing Then
dr2n("QE") = dr4("QE") 'QE
dr2n("ME") = dr4("ME") 'ME
End If