看来不单单查询这样,遍历过程中,任何涉及到所有行的操作,例如查找和计算都如此,我将第一列和第二列改为整数型,下面两段代码效率同样相差几百倍:
普通的:
Dim v As Double
For Each dr As DataRow In DataTables("表A").DataRows
v = DataTables("表A").Compute("Sum(第二列 )", "第二列 = " & dr("第一列"))
dr("第四列") = v
Next
高效的,快了300倍:
Dim Dic As new Dictionary(of DataRow, Integer)
Dim v As Double
For Each dr As DataRow In DataTables("表A").DataRows
v = DataTables("表A").Compute("Sum(第二列 )", "第二列 = " & dr("第一列"))
dic.Add(dr, v)
Next
For Each dr As DataRow In dic.Keys
dr("第四列") = dic(dr)
Next