以下代码执行到黄色部分,需要3.8秒,不知道是什么原因?“网络子账户明细”数据有25万行
Dim st As Date = Date.Now
If e.DataRow.Isnull("系统交易时间") = False Then
Dim filter1 As String =" 收款子账号 = '" & e.DataRow("付款子账号") & "' and 发生额= '" & e.DataRow("发生额") & "'and 系统交易时间>= '" & e.DataRow("系统交易时间").AddSeconds(-10) & "'and 系统交易时间<= '" & e.DataRow("系统交易时间") & "' "
Dim filter2 As String =" 付款子账号 = '" & e.DataRow("收款子账号") & "' and 发生额= '" & e.DataRow("发生额") & "'and 系统交易时间<= '" & e.DataRow("系统交易时间").AddSeconds(10) & "'and 系统交易时间>= '" & e.DataRow("系统交易时间") & "'"
Dim filter3 As String =" 付款子账号 = '" & e.DataRow("下手收款子账号") & "' and 系统交易时间<= '" & e.DataRow("系统交易时间").AddSeconds(10) & "'and 系统交易时间>= '" & e.DataRow("系统交易时间").AddSeconds(-10) & "'and 收款账户名称 <> '" & e.DataRow("收款账户名称") & "'"
Dim filter4 As String =" 付款子账号 = '" & e.DataRow("上手收款子账号") & "' and 系统交易时间>= '" & e.DataRow("系统交易时间").AddSeconds(-10) & "'and 系统交易时间<= '" & e.DataRow("系统交易时间").AddSeconds(10) & "' and 收款账户名称 <> '" & e.DataRow("收款账户名称") & "' "
Select Case e.DataCol.name
Case "收款账户名称"
If DataTables.Contains("网络子账户明细") =True Then
If e.DataRow.Isnull("付款子账号") = False AndAlso e.DataRow.Isnull("支付单号") = False AndAlso e.DataRow.Isnull("系统交易时间") = False Then
Dim dr1 As DataRow = DataTables("网络子账户明细").find(filter1)
If dr1 IsNot Nothing Then
e.DataRow("上手收款账户名称") = dr1("付款账户名称")
e.DataRow("上手收款子账号") = dr1("付款子账号")
e.DataRow("下手收款账户名称") = Nothing
e.DataRow("下手收款子账号") = Nothing
Else
e.DataRow("上手收款账户名称") = Nothing
e.DataRow("上手收款子账号") = Nothing
e.DataRow("下手收款账户名称") = Nothing
e.DataRow("下手收款子账号") = Nothing
End If
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")
ElseIf e.DataRow.Isnull("付款子账号") = False AndAlso e.DataRow.Isnull("支付单号") = True AndAlso e.DataRow.Isnull("系统交易时间") = False Then
Dim dr2 As DataRow = DataTables("网络子账户明细").find(filter2)
If dr2 IsNot Nothing Then
e.DataRow("下手收款账户名称") = dr2("收款账户名称")
e.DataRow("下手收款子账号") = dr2("收款子账号")
e.DataRow("上手收款账户名称") = Nothing
e.DataRow("上手收款子账号") = Nothing
Else
e.DataRow("下手收款账户名称") = Nothing
e.DataRow("下手收款子账号") = Nothing
e.DataRow("上手收款账户名称") = Nothing
e.DataRow("上手收款子账号") = Nothing
End If
End If
End If
End Select
End If