以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]我需要批量导入上万条数据,看了下以往的帖子,没看懂,求教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141673)

--  作者:zto001
--  发布时间:2019/10/8 12:38:00
--  [求助]我需要批量导入上万条数据,看了下以往的帖子,没看懂,求教
[求助]我需要批量导入上万条数据,看了下以往的帖子,没看懂,求教
--  作者:有点蓝
--  发布时间:2019/10/8 14:18:00
--  
什么帖,写了什么代码,什么地方不懂?
--  作者:zto001
--  发布时间:2019/10/8 15:07:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=53006&skin=0
首先,他的代码里有错
Dim cmd As New SQLCommand
cmd.C
Dim Count As Integer = 0
其次没明白导入数据跟这个有什么关系



这个倒是可以,单只能弄几千条,搞个上万条就出错

--  作者:zto001
--  发布时间:2019/10/8 15:10:00
--  
当前我用的是Access作为数据源
--  作者:有点蓝
--  发布时间:2019/10/8 15:20:00
--  
这个是因为论坛发帖屏蔽了一些关键字,可以下载附件看源码啊

Dim cmd As New SQLCommand
cmd.ConnectionName = "某数据源"
……

Count 变量只是为了方便知道更新了多少条数据

--  作者:zto001
--  发布时间:2019/10/9 11:13:00
--  
sql语句合成这方法好像有点慢,我导了一万多,就进入假死状态了
--  作者:zto001
--  发布时间:2019/10/10 8:38:00
--  
还有办法没?
--  作者:有点蓝
--  发布时间:2019/10/10 8:42:00
--  
那就分批处理,一次处理一万条
--  作者:zto001
--  发布时间:2019/11/4 15:52:00
--  
Dim st As Date = Date.Now
Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("账单"),"账单","运单号","运单号","收件扫描时间|客户名称|目的地|城市|结算重量|签收网点|运费|重量|加收费","收件扫描时间|客户名称|目的地|城市|结算重量|签收网点|运费|重量|加收费",1)

If strlist.count = 0 Then Return  Nothing

Dim sql As String
Dim cmd As New SQLCommand
cmd.Connecti
Dim Count As Integer = 0

For Each s As String In strlist
    cmd.CommandText = s
    Count += cmd.ExecuteNonQuery()
    Output.show(s)
Next

Tables("账单").DataTable.BaseTable.AcceptChanges()   \'提交修改
Tables("账单").DataTable.Load             \'刷新表
Output.show("影响了" & Count & "行")
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")


想问问,我第一次执行这代码的时候正常执行,后面在执行就提示错误了,是哪里错了?

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.10.3.1
错误所在事件:自定义函数sql提取函数
详细错误信息:
调用的目标发生了异常。
从类型“DBNull”到类型“String”的转换无效。




图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191104155113.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2019/11/4 16:23:00
--  
错误所在事件:自定义函数sql提取函数

检查函数代码