Foxtable(狐表)用户栏目专家坐堂 → 有关导入表数据保存速度问题


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

主题:有关导入表数据保存速度问题

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


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
有关导入表数据保存速度问题  发帖心情 Post By:2014/11/8 9:59:00 [只看该作者]

批量导入SQL数据表后,需要保存数据,目前使用了DataTables("普仓入库单_Table1").save()

但可能会存在保存速度较慢(上千条数据),另外在保存过程可能存在数据库服务器断网时,数据不完整。

请教,应当使用什么方法合适?谢谢!!


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


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

断网而导致保存不完整那是没办法的,  如果怕重复数据,  导入的时候排除重复就好

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


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2014/11/8 10:10:00 [只看该作者]

保存失败没有提示吗

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


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

连不上网了会出现错误提示的

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


加好友 发短信
等级:小狐 帖子:392 积分:3026 威望:0 精华:0 注册:2014/9/20 23:56:00
  发帖心情 Post By:2014/11/8 19:26:00 [只看该作者]

我自己用的导入保存 第一个参数是原数据表 第二个参数是目的数据表  参考lsy先前的一个帖子做的
导入的时候先生成一个临时表把数据倒进去,然后使用多行一次性插入保存 速度比save快多了 我使用互联网保存500条数据 37列 大概是16-20秒

Dim stbl As String = Args(0)
Dim dtbl As String = Args(1)
Dim dt As Date = Date.Now
Dim cmd As New SQLCommand
cmd.C
Dim sql1,sql2 As String
For Each c As Col In Tables(stbl).Cols
    sql1 + = c.Name & ","
Next
For Each r As Row In Tables(stbl).Rows
    sql2 = ""
    For Each c As Col In Tables(stbl).Cols
        If c.IsDate Then
            sql2 + = "'" & r(c.Name) & "'" & ","
        ElseIf c.IsString Then
            sql2 + = "'" & r(c.Name) & "',"
        ElseIf c.IsBoolean Then
            If r(c.Name) = True Then
                sql2 + = 1 & ","
            ElseIf r(c.Name) = False Then
                sql2 + = 0 & ","
            End If
        Else
            sql2 + = r(c.Name) & ","
        End If
    Next
    cmd.CommandText + = "InSert Into " & dtbl & " (" & sql1.Trim(",") & ") Values (" & sql2.Trim(",") & ");"    
Next
cmd.CommandText = cmd.CommandText.Trim(";")
cmd.ExecuteNonQuery
DataTables(dtbl).Load
Dim tp As TimeSpan
tp = Date.Now - dt
MessageBox.Show(tp.TotalSeconds)

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/11/8 20:25:00 [只看该作者]

大数据保存时,还是启用 事务 为好


 回到顶部