2013-07-30 67 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");