以文本方式查看主题

-  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实例,说明你要实现的功能、达到的目的。