首页新闻找找看学习计划

DataTable 内存溢出

0
悬赏园豆:20 [待解决问题]
 1      List<LOT> lists= OracleHelper.GetList(model);//23334条数据
 2             DataTable dt = OracleHelper.GetData();//27291条数据
 3             DataTable data = dt.Clone();
 4             DataRow[] rows = null;
 5 
 6             foreach (var item in lists)
 7             {
 8                 rows = dt.Select("modelName='" + item.Name + "'");
 9                 if (rows.Count() >= 1)
10                 {
11                     data.ImportRow(rows[0]);//在16384条数据的时候,报错
12                 }
13             }

具体代码如上,烦请大神不吝赐教!

ㅤㅤㅤㅤㅤㅤ的主页 ㅤㅤㅤㅤㅤㅤ | 菜鸟二级 | 园豆:219
提问于:2018-11-07 14:23

dt和data列数有1900多个,但是应该不影响,dt都有接近3W条数据

BlueWhale` 1年前
< >
分享
所有回答(6)
0

应该是那一行值为空,报错了。去除空行试一下。

徒然喜欢你 | 园豆:1621 (小虾三级) | 2018-11-07 14:43

No

支持(0) 反对(0) ㅤㅤㅤㅤㅤㅤ | 园豆:219 (菜鸟二级) | 2018-11-07 15:05
0

说不定真的是内存溢出了...

爱编程的大叔 | 园豆:30489 (高人七级) | 2018-11-07 14:44

真是溢出

支持(0) 反对(0) ㅤㅤㅤㅤㅤㅤ | 园豆:219 (菜鸟二级) | 2018-11-07 15:06
0

不能每次处理一小部分吗,干嘛一下子读入这么多?

会长 | 园豆:7478 (大侠五级) | 2018-11-07 14:52

不能,整成一个DataTable导出成Csv档

支持(0) 反对(0) ㅤㅤㅤㅤㅤㅤ | 园豆:219 (菜鸟二级) | 2018-11-07 15:02

@BlueWhale`: 导出csv为什么非要整成一个datatable?csv只不过是一个文本文件,通过文件流就能创建,根本就用不了多少内存。

支持(0) 反对(0) 会长 | 园豆:7478 (大侠五级) | 2018-11-07 15:27
0

使用64位,你再超出内存算你狠。

花飘水流兮 | 园豆:10855 (专家六级) | 2018-11-07 15:06

64位操作系统吗

 

支持(0) 反对(0) ㅤㅤㅤㅤㅤㅤ | 园豆:219 (菜鸟二级) | 2018-11-07 15:17
0

建议使用 OracleDataReader ,参考 OracleDataReader Class

dudu | 园豆:39106 (高人七级) | 2018-11-07 15:58
0

分页导出,每次导出的条数自定义

jqw2009 | 园豆:1946 (小虾三级) | 2018-11-08 08:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册