以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于表新增行的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60690) |
-- 作者:paniwangji -- 发布时间:2014/11/29 10:42:00 -- 关于表新增行的问题 假设我有3000千条数据需要新增到datatable中,目前我的方法是: For i As Integer = 0 To 2999 Tables("A").AddNew Tables("A").Current("第一列") = arrA(i,0) Tables("A").Current("第二列") = arrA(i,1) Tables("A").Current("第三列") = arrA(i,2) Next DataTables("A").Save 但是在实际使用过程中,程序需要逐条新增,速度很慢。 我想请教一下各位老师,因为需要对时间有要求,有没有更快的方式来添加数组中的数据,谢谢。
[此贴子已经被作者于2014-11-29 10:44:24编辑过]
|
-- 作者:Bin -- 发布时间:2014/11/29 10:44:00 -- http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52855&skin=0 |
-- 作者:paniwangji -- 发布时间:2014/11/29 10:48:00 -- 谢谢BIN |
-- 作者:paniwangji -- 发布时间:2014/11/30 17:21:00 -- BIN老师,根据你提供地址的那个方法,我用第四种方法已经可以实现批量导入。但是现在又有一个新问题,我每次导入大概在3000条数据左右,前三次导入都没有问题,第四次总是出现《引发类型为“System.OutOfMemoryException”的异常。》这个提示,我猜测是不是内存的问题,所以我将实例中存有大量字符串的"sql1”,"sql2”,"cmd.CommandText” 这些在每次导入结束后都有一个"= Nothing" 的操作,但是还是不行。请问到底是哪里出的问题? |
-- 作者:有点甜 -- 发布时间:2014/11/30 17:24:00 -- 重新赋值
Dim sql1,sql2 As String sql1 = "" sql2 = "" |
-- 作者:paniwangji -- 发布时间:2014/11/30 17:29:00 -- 重新赋值也不行啊 |
-- 作者:有点甜 -- 发布时间:2014/11/30 17:33:00 -- 那就不可能是固定第几次就提示错误。
肯定是你导入的数据过多导致生产的字符串过长数据库无法执行。 |
-- 作者:paniwangji -- 发布时间:2014/11/30 17:42:00 -- 这个原因可以肯定排除的,因为出现错误后,我重启FOXTABLE,导入刚刚出错的那批数据就很顺利。 [此贴子已经被作者于2014-11-30 17:41:49编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/30 17:44:00 -- 那就不可能,例子上传上来。
Dim sql1,sql2 As String sql1 = "" sql2 = "" |
-- 作者:有点甜 -- 发布时间:2014/11/30 17:47:00 -- 这个 cmd.CommandText 也要设置成空值 |