Foxtable(狐表)用户栏目专家坐堂 → 请教下 如何优化这段代码


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

主题:请教下 如何优化这段代码

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


加好友 发短信
等级:一尾狐 帖子:463 积分:4872 威望:0 精华:0 注册:2011/8/20 18:40:00
请教下 如何优化这段代码  发帖心情 Post By:2011/11/29 10:54:00 [只看该作者]

 

我新加一个订单的时候在状态列显示一个 “新加 New”

下面这段代码 在数据多的时候重置订单加入时间列 的时候很慢。 怎样优化代码 ?


''新订单显示

If e.DataCol.Name = "订单加入时间" Then
    Dim t As  Integer
    Dim j As  Date = e.DataRow("订单加入时间")
    t = ( Date.Today - j).TotalDays
    If t < 2  Then
        e.DataRow("状态")= "新加 New"
    Else If e.DataRow("状态")= "新加 New"
        e.DataRow("状态")= Nothing
       
    End If
   
End If


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


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

单单这几行代码,速度不会太慢,也许其他地方影响吧。

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


加好友 发短信
等级:一尾狐 帖子:463 积分:4872 威望:0 精华:0 注册:2011/8/20 18:40:00
  发帖心情 Post By:2011/11/29 11:31:00 [只看该作者]

嗯 不是这段代码的问题是 另外一段的问题 狐爸 看下能解决吗?

 

有8个表要同步显示 状态的内容 所以当重置订单加入日期列的时候 状态列发生了变化 执行下面这段代码的时候影响了速度..

 

 

 

If e.DataCol.Name = "状态"
    Dim Filter As String = "[编号] = '" & e.DataRow("编号") & "'"
    Dim drs As List(Of DataRow) = DataTables("A").Select(Filter)
    Dim drs1 As List(Of DataRow) = DataTables("B").Select(Filter)
    Dim drs2 As List(Of DataRow) = DataTables("C").Select(Filter)
    Dim drs3 As List(Of DataRow) = DataTables("D").Select(Filter)
    Dim drs4 As List(Of DataRow) = DataTables("E").Select(Filter)
    Dim drs5 As List(Of DataRow) = DataTables("F").Select(Filter)
    Dim drs6 As List(Of DataRow) = DataTables("G").Select(Filter)
    Dim drs7 As List(Of DataRow) = DataTables("H").Select(Filter)
    Dim drs8 As List(Of DataRow) = DataTables("I").Select(Filter)
   
    For Each dr As DataRow In drs
        dr("状态") = e.DataRow("状态")
    Next
   
    For Each dr1 As DataRow In drs1
        dr1("状态") = e.DataRow("状态")
    Next
    For Each dr2 As DataRow In drs2
        dr2("状态") = e.DataRow("状态")
    Next
    For Each dr3 As DataRow In drs3
        dr3("状态") = e.DataRow("状态")
    Next
   
    For Each dr4 As DataRow In drs4
        dr4("状态") = e.DataRow("状态")
    Next
    For Each dr5 As DataRow In drs5
        dr5("状态") = e.DataRow("状态")
    Next
   
    For Each dr6 As DataRow In drs6
        dr6("状态") = e.DataRow("状态")
    Next
   
    For Each dr7 As DataRow In drs7
        dr7("状态") = e.DataRow("状态")
    Next
   
    For Each dr8 As DataRow In drs8
        dr8("状态") = e.DataRow("状态")
    Next
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/29 12:42:00 [只看该作者]

1、这是肯定慢的,特别是重置的时候,这些表不能通过关联和表达式来引用吗?

2、用ReplcaeFor方法吧,代码简洁点,速度不见得会提升。


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


加好友 发短信
等级:一尾狐 帖子:463 积分:4872 威望:0 精华:0 注册:2011/8/20 18:40:00
  发帖心情 Post By:2011/11/29 12:48:00 [只看该作者]

 用关联表达式不适用 应为状态这列还要显示其他信息 比如说订单 加急 暂停 .... 要在每一个表都可以修改的 如果用关联表达式 只能在主表修改不适用。 每个人只负责自己的部分 所以不是所以的人都可以看的到主表

我要的就是 每个表信息同步 并且可以修改 修改后所有的表跟着更新。


 回到顶部