2013-07-30 37 views
1

我有以下代码:的System.OutOfMemoryException在StringBuilder的

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 
    for (int j = 0; j < ds.Tables[0].Columns.Count; j++) 
    { 
     strCsv.Append(XC.CleanForCsv(ds.Tables[0].Rows[i][j].ToString()) + ","); 
    } 

    strCsv.Append("\r\n" + strCsv) 
} 

Dataset包含8000条记录。使用for循环遍历整个记录后,只有15条记录strCsv.Append("\r\n" + strCsv)语句抛出异常,说System.OutOfMemoryException。这种例外背后的原因是什么?

+1

注意的未来的问题 - 请多加注意很好地格式化你的代码。我现在要编辑这个问题,以显示它应该如何发布,但请在将来的初始文章中进行。 –

回答

13

看看这个:

strCsv.Append("\r\n" + strCsv) 

你在每次迭代加倍输出。这将很快建立非常 - 以及给你错误的结果。

我觉得你只是想:

strCsv.Append("\r\n");