首页 新闻 会员 周边 捐助

DataTable 内存溢出

0
悬赏园豆:20 [已解决问题] 解决于 2022-08-16 10:54
 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             }

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

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

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

BlueWhale` 6年前
< >
分享
最佳答案
0

建议使用 OracleDataReader ,参考 OracleDataReader Class

收获园豆:20
dudu | 高人七级 |园豆:29566 | 2018-11-07 15:58
其他回答(5)
0

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

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

No

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

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

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

真是溢出

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

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

会长 | 园豆:12463 (专家六级) | 2018-11-07 14:52

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

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

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

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2018-11-07 15:27
0

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

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

64位操作系统吗

 

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

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

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