Foxtable(狐表)用户栏目专家坐堂 → [分享]数据导入对比


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

主题:[分享]数据导入对比

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
[分享]数据导入对比  发帖心情 Post By:2023/9/5 16:15:00 [只看该作者]

最近写些与数据导入相关的内容,对比一下手工编码、Filler、Merger  三种方式,用时分别为117秒、90秒、325秒。

       一、手工编码   117秒
        Dim cmd As New SQLCommand
        cmd.ConnectionName = sjy
        Dim dt As DataTable
        cmd.CommandText = "S ELECT * From {A1_qdk} "
        dt = cmd.ExecuteReader()
        For Each dr1 As DataRow In dt.DataRows
            Dim dr2 As DataRow = DataTables("A1_qdk").AddNew()
            For i As Integer = 0 To dt.DataCols.Count - 1
                dr2(dt.DataCols(i).Name) = dr1(dt.DataCols(i).Name)
            Next
        Next

        二、Filler    90秒
        Dim cmd As New SQLCommand
        cmd.ConnectionName = sjy
        Dim dt As DataTable 
        cmd.CommandText = "S ELECT * From {A1_qdk} "
        dt = cmd.ExecuteReader()

        Dim f As New Filler
        f.SourceTable = dt '指定数据来源
        f.SourceCols = "XH,BH,MC,DW,GZRR,JSGZ,ZJBJ" '指定数据来源列
        f.DataTable = DataTables("A1_qdk") '指定数据接收表
        f.DataCols = "XH,BH,MC,DW,GZRR,JSGZ,ZJBJ" '指定数据接收列
        f.Distinct = False
        f.Fill() '填充数据
        DataTables("A1_qdk").Save 

       三、Merger   325秒
            Dim mg As New Merger 
        mg.SourcePath = dlg.FileName
        StatusBar.Message1 = ("正在导入清单库...")
        mg.SourceTableName = "1_qdk"
        mg.DataTableName = "A1_qdk"
        mg.Merge()

				希望得到更优的处理方式!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.rar










 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/5 16:46:00 [只看该作者]

屏蔽事件,禁止刷新

        Dim cmd As New SQLCommand
        cmd.ConnectionName = sjy
        Dim dt As DataTable
        cmd.CommandText = "S ELECT * From {A1_qdk} "
        dt = cmd.ExecuteReader()
systemready=false
DataTables("A1_qdk").StopRedraw
        For Each dr1 As DataRow In dt.DataRows
            Dim dr2 As DataRow = DataTables("A1_qdk").AddNew()
            For i As Integer = 0 To dt.DataCols.Count - 1
                dr2(dt.DataCols(i).Name) = dr1(dt.DataCols(i).Name)
            Next
        Next
DataTables("A1_qdk").ResumeRedraw
systemready=true

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/5 16:46:00 [只看该作者]

可以看看:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100317&replyID=&skin=1

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2023/9/6 7:36:00 [只看该作者]

谢谢

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2023/9/6 7:36:00 [只看该作者]

研究一下

 回到顶部
帅哥,在线噢!
y2287958
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4773 积分:34673 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2023/9/6 7:55:00 [只看该作者]

上个项目文件及数据库,我相信有更快的办法

 回到顶部