2011-03-22 101 views
0

我有被填充在數據網格在WPF也許50 000個名單。現在我想將列表中的數據保存到可能是文本或最好是CSV的文件中。由於列表太大。有一個問題,我的實現方法可能是簡單的文本文件寫入或從datagrid複製內容到剪貼板然後返回到字符串,然後該字符串文件使用StreamReader的方法。即使在後臺工作人員也需要大約4-5分鐘的時間。如何保存大數據到文件

有什麼辦法,我可以節省巨大的名單迅速文件?

我使用DataGrid的WPF中

CODE

dataGrid1.SelectAllCells(); 
      dataGrid1.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader; 
      ApplicationCommands.Copy.Execute(null, dataGrid1); 
    String result = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue); 


///Never reach to step Below thread stays on above line 
       dataGrid1.UnselectAllCells(); 
       Clipboard.Clear(); 
       StreamWriter file = new System.IO.StreamWriter(SavePageRankToPDF.FileName); 
       file.WriteLine(result); 
       file.Close(); 
+0

哪個DataGrid類是您使用?哪種語言? – MonkeyWrench 2011-03-22 20:02:45

+0

你能告訴我們你現在使用的代碼需要這麼久嗎?如果您在調試器中逐步完成代碼,那麼最耗時的步驟是什麼? – David 2011-03-22 20:03:49

+0

您是使用datagrid作爲獨立對象還是綁定到數據庫? – 2011-03-22 20:04:23

回答

0

一兩件事,這將有助於爲使用它的顯示目的時,並非所有的數據加載到數據網格。使用分頁會是一個好主意:只將數據加載到計算或顯示目的所需的數據網格中。如果用戶想要查看/使用更多數據,請返回數據源並獲取更多數據。您的應用程序不僅會運行得更快,而且會使用更少的內存。

+0

是的,我已經設法在數據和DataGrid約需3-4秒,以顯示所有的數據,但它是保存文件我遭受的最多 – 2011-03-22 20:12:09

+0

你可以發佈你用來填充網格的代碼嗎? – MonkeyWrench 2011-03-22 20:19:55

+0

的問題是不是與grid.Problem是與文件writing.Is那裏,我可以消除使用剪貼板存儲和使用目錄的寫入文件 – 2011-03-22 20:22:37