以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教最快速度清空表的空行空格代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98778)

--  作者:hbhb
--  发布时间:2017/4/6 22:49:00
--  请教最快速度清空表的空行空格代码
色大师:下面一次清空表的空行空格如何优化?
Dim Filter As String                                   \'---------清除空行-----
For Each dc As DataCol In b1.DataTable.DataCols
    Filter = Filter & " And " & dc.Name & " Is Null"
Next
Filter = Filter.SubString(5)

b1.DataTable.DeleteFor(Filter)


For Each r1 As DataRow In b1.DataTable.dataRows    \'---清除所有空格-----     
    For Each l1 As DataCol In b1.DataTable.dataCols
        If r1.IsNull(l1.name) = False  Then
            r1(l1.name) = cstr(trim(r1(l1.name))).replace(" ","")
        End If
    Next
Next


--  作者:有点色
--  发布时间:2017/4/7 2:20:00
--  
 已经是最优解了。
--  作者:hbhb
--  发布时间:2017/4/7 9:29:00
--  
请问为何有时增加条件判断反而会降低效率?按理说不是减少了工作量吗?
--  作者:有点蓝
--  发布时间:2017/4/7 9:34:00
--  
除非你的条件判断能显著减少循环的次数,否则只会增加工作量
--  作者:有点青
--  发布时间:2017/4/7 9:37:00
--  
以下是引用hbhb在2017/4/7 9:29:00的发言:
请问为何有时增加条件判断反而会降低效率?按理说不是减少了工作量吗?

 

增加条件判断肯定会影响查询效率,条件越多效率越低。

 

条件多以后,获取的数据可能会较少,后续的代码执行的次数可能就较少,所以有一种给你的错觉。