Foxtable(狐表)用户栏目专家坐堂 → for each 遍历方法效率是不是有点低?


  共有3979人关注过本帖树形打印复制链接

主题:for each 遍历方法效率是不是有点低?

帅哥哟,离线,有人找我吗?
westwolf
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:43 积分:436 威望:0 精华:0 注册:2010/8/11 14:23:00
for each 遍历方法效率是不是有点低?  发帖心情 Post By:2013/8/6 10:01:00 [只看该作者]

狐爸帮忙看看这段代码,做上100次循环居然要1分钟左右。请帮忙优化下。感谢!

 

For Each r As DataRow In DtEmployee.DataRows
 strCName = r("员工姓名")
  If strCName = strCCName Then
        strTel = r("联系电话") 
 '=====
        '面护
 '=====
 strF =strFilter2 & "  And [项目大类] = '面护'"
 nXCount = DtCstmCard.Compute("Sum(期初金额)", strF)
        DtEmployee.DataCols("面护_销售业绩").AllowEdit = True
        r("面护_销售业绩") =  nXCount
        DtEmployee.DataCols("面护_销售业绩").AllowEdit = False
 
 strF =strFilter & "  And [项目大类] = '面护'"
 nSCount = DtNurse.Compute("Sum(次数)", strF)
        DtEmployee.DataCols("面护_护理次数").AllowEdit = True
        r("面护_护理次数") =   nSCount
        DtEmployee.DataCols("面护_护理次数").AllowEdit = False

 

NEXT

 

END IF


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/6 10:04:00 [只看该作者]

这样看看:

For i As Integer = 0 To DtEmployee.DataRows.Count -1
    Dim r sa DataRow = DtEmployee.DataRows(i)
    strCName = r("员工姓名")
    If strCName = strCCName Then
        strTel = r("联系电话")
        '=====
        '面护
        '=====
        strF =strFilter2 & "  And [项目大类] = '面护'"
        nXCount = DtCstmCard.Compute("Sum(期初金额)", strF)
        DtEmployee.DataCols("面护_销售业绩").AllowEdit = True
        r("面护_销售业绩") =  nXCount
        DtEmployee.DataCols("面护_销售业绩").AllowEdit = False
       
        strF =strFilter & "  And [项目大类] = '面护'"
        nSCount = DtNurse.Compute("Sum(次数)", strF)
        DtEmployee.DataCols("面护_护理次数").AllowEdit = True
        r("面护_护理次数") =   nSCount
        DtEmployee.DataCols("面护_护理次数").AllowEdit = False
    Next
End If

 

如果还是不行,可以看看:

http://www.foxtable.com/help/topics/2225.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/6 10:07:00 [只看该作者]

你好,效率低的不是FOr EACH循环 而是你里面执行的操作哦.

 回到顶部
帅哥哟,离线,有人找我吗?
pengjiam
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:187 积分:2763 威望:0 精华:0 注册:2011/7/30 21:27:00
  发帖心情 Post By:2013/8/6 12:11:00 [只看该作者]

先纠正代码错误:

    Next
End If
应为:

   end if

next


 回到顶部