以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  劳驾帮忙优化代码  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=62878)

--  作者:hbhb
--  发布时间:2015/1/9 14:31:00
--  劳驾帮忙优化代码
甜老大:劳驾优化代码

Dim t As Table = tb8tb
Dim dt As DataTable = DataTables("物料表")
For i As Integer = cr + 1 To t.Rows.Count - 1
    Dim ndr As DataRow = dt.AddNew
    For Each c As Col In t.Cols
        Dim cname As String = t.Rows(cr)(c.Name)
        If dt.DataCols.Contains(cname) Then
            ndr(cname) = t.Rows(i)(c.Name)
           
        End If
    Next
Next




--  作者:有点甜
--  发布时间:2015/1/9 14:33:00
--  

  代码无法优化。

 

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

 


--  作者:Bin
--  发布时间:2015/1/9 14:34:00
--  
直接用数据填充器吧


--  作者:hbhb
--  发布时间:2015/1/9 14:47:00
--  
慢的一比吊烧,就没有办法提高速度?


--  作者:Bin
--  发布时间:2015/1/9 14:51:00
--  
更换思路,直接插入数据库.


--  作者:有点甜
--  发布时间:2015/1/9 15:01:00
--  
以下是引用hbhb在2015-1-9 14:47:00的发言:
慢的一比吊烧,就没有办法提高速度?

 

具体多慢,例子发上来测试。


--  作者:hbhb
--  发布时间:2015/1/9 16:10:00
--  
见实例,如何快速将上报数据表的相关数据,填充到物料信息表,劳驾帮助优化一下代码,速度快一点!
--  作者:hbhb
--  发布时间:2015/1/9 16:10:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.zip


--  作者:有点甜
--  发布时间:2015/1/9 16:25:00
--  

Dim t As Table = Tables("上报资料")
Dim dt As DataTable = DataTables("物料信息")
Dim scs As String = ""
Dim dcs As String = ""

For Each c As Col In t.Cols
    Dim cname As String = t.Rows(1)(c.Name)
    If dt.DataCols.Contains(cname) Then
        dcs &= cname & ","
        scs &= c.Name & ","
    End If
Next

Dim f As new Filler
f.SourceTable = DataTables("上报资料") \'指定数据来源
f.SourceCols = scs.Trim(",") \'指定数据来源列
f.DataTable = DataTables("物料信息") \'指定数据接收表
f.DataCols = dcs.Trim(",") \'指定数据接收列
f.Filter = "_Identify >= " & t.Rows(2)("_Identify")
f.Fill() \'填充数据


--  作者:hbhb
--  发布时间:2015/1/9 16:59:00
--  
万分感谢!填充器我还没用过,原来还有这么好的东西!