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 }
具体代码如上,烦请大神不吝赐教!
应该是那一行值为空,报错了。去除空行试一下。
No
说不定真的是内存溢出了...
真是溢出
不能每次处理一小部分吗,干嘛一下子读入这么多?
不能,整成一个DataTable导出成Csv档
@BlueWhale`: 导出csv为什么非要整成一个datatable?csv只不过是一个文本文件,通过文件流就能创建,根本就用不了多少内存。
使用64位,你再超出内存算你狠。
64位操作系统吗
分页导出,每次导出的条数自定义
dt和data列数有1900多个,但是应该不影响,dt都有接近3W条数据
– BlueWhale` 6年前