Foxtable(狐表)用户栏目专家坐堂 → 关于表新增行的问题


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

主题:关于表新增行的问题

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


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
关于表新增行的问题  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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


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


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/11/29 10:48:00 [只看该作者]

谢谢BIN

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


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/11/30 17:21:00 [只看该作者]

BIN老师,根据你提供地址的那个方法,我用第四种方法已经可以实现批量导入。但是现在又有一个新问题,我每次导入大概在3000条数据左右,前三次导入都没有问题,第四次总是出现《引发类型为“System.OutOfMemoryException”的异常。》这个提示,我猜测是不是内存的问题,所以我将实例中存有大量字符串的"sql1”,"sql2”,"cmd.CommandText” 这些在每次导入结束后都有一个"= Nothing" 的操作,但是还是不行。请问到底是哪里出的问题?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/30 17:24:00 [只看该作者]

 重新赋值

 

Dim sql1,sql2 As String

sql1 = ""

sql2 = ""


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


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/11/30 17:29:00 [只看该作者]

重新赋值也不行啊

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/30 17:33:00 [只看该作者]

 那就不可能是固定第几次就提示错误。

 

 肯定是你导入的数据过多导致生产的字符串过长数据库无法执行。


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


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/11/30 17:42:00 [只看该作者]

这个原因可以肯定排除的,因为出现错误后,我重启FOXTABLE,导入刚刚出错的那批数据就很顺利。
[此贴子已经被作者于2014-11-30 17:41:49编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/30 17:44:00 [只看该作者]

 那就不可能,例子上传上来。

 

Dim sql1,sql2 As String

sql1 = ""

sql2 = ""


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/30 17:47:00 [只看该作者]

 这个 cmd.CommandText 也要设置成空值

 回到顶部
总数 11 1 2 下一页