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


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

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

帅哥哟,离线,有人找我吗?
mxm121
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)

 回到顶部