如何将大数据保存到文件

时间:2011-03-22 19:59:01

标签: c# optimization file-writing

我列出了在wpf中的datagrid中填充的50,000个条目。现在我想将列表中的数据保存到可能是文本的文件中,或者最好是CSV。因为名单太大了。有一个问题,我的实现方法可能是简单的文本文件写入或将内容从datagrid复制到剪贴板然后回到字符串,然后使用StreamReader将该字符串复制到文件的方法。它甚至在背景工作者中消耗大约4-5分钟。

有没有办法可以快速保存大量列表?

我在WPF中使用DataGrid

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();

2 个答案:

答案 0 :(得分:2)

为什么不迭代数据表并构建csv文件,而不是使用剪贴板。

<强>更新

以下是一些例子:

Convert DataTable to CSV stream

Converting DataSet\DataTable to CSV

答案 1 :(得分:0)

有一点可以帮助您在将数据用于显示目的时不将所有数据加载到数据网格中。使用分页是个好主意:只将数据加载到计算或显示所需的数据网格中。如果用户想要查看/使用更多数据,请返回数据源并获取更多数据。您的应用程序不仅会运行得更快,而且会占用更少的内存。