以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 以下代码如何优化 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117965) |
-- 作者:hbhb -- 发布时间:2018/4/22 1:22:00 -- 以下代码如何优化 大师:好!请问以下代码如何优化速度? Dim pzbdt As DataTable = DataTable(“表a”) Dim mxkm As new List(of String) mxkm = pzbdt.GetValues("pzzb7","pzzb12 in (" & "测试" & ")" & " And (pzzb33 Is not null Or pzzb34 Is not null)") For Each mx As String In mxkm \'-----循环次数约3000-10000次 Dim hbzjlsb As String \'---------SQL查询字符串------ hbzjlsb = "pzzb7,pzzb33,pzzb34,pzzb26,pzzb31 from {" & "dtpzzb" & "} where " & "pzzb7 In (" & mx & ")" & " And pzzb1 = \'" & zgsztzz & "\' and pzzb2 = \'" & zgsztnd & "\' and pzzb3 = \'" & yfcs & "\' and pzzb4 = \'" & zgsztmc & "\'and pzzb42 = \'原\'" Dim pzbtjb As DataTable \'---------分组统计表 Dim g As New GroupTableBuilder("统计表1",hbzjlsb,zgsconn) g.Groups.AddDef("tjbh") g.Groups.AddDef("pzzb26") g.Groups.AddDef("pzzb31") g.Groups.AddDef("pzzb7") g.Totals.AddDef("pzzb33") g.Totals.AddDef("pzzb34") pzbtjb = g.Build(True) For Each r As DataRow In pzbtjb.DataRows If r("pzzb33") > r("pzzb34") Then r("pzzb33") = r("pzzb33") - r("pzzb34") r("pzzb34") = Nothing ElseIf r("pzzb33") < r("pzzb34") Then r("pzzb34") = r("pzzb34") - r("pzzb33") r("pzzb33") = Nothing ElseIf r("pzzb33") = r("pzzb34") Then r("pzzb33") = Nothing r("pzzb34") = Nothing r.Delete End If \'-----以下还有很多根据此表的逻辑判断与计算 Next Next |
-- 作者:y2287958 -- 发布时间:2018/4/22 9:47:00 -- 判断多,操作时间肯定长。 可以上例子+说明,另辟蹊径。
|
-- 作者:hbhb -- 发布时间:2018/4/22 20:17:00 -- 甜大大,怎么优化? |
-- 作者:有点甜 -- 发布时间:2018/4/22 20:25:00 -- 没看懂你这段代码到底要做什么。
请上传具体foxtable实例,说明你要实现的功能、达到的目的。 |