【发布时间】:2017-02-15 17:46:28
【问题描述】:
我在将数据从 DataGridView 导出到 .txt 文件时遇到问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace TSQ
{
class TxtExporter : IExporter
{
public void Export(DataGridView dataGrid, Output output)
{
if (output == null)
return;
string filePath = output.TemplatePath;
try
{
using (StreamWriter sw = new StreamWriter(filePath))
{
for (int row = 0; row < dataGrid.Rows.Count; row++)
{
for (int col = 0; col < dataGrid.Columns.Count; col++)
{
sw.Write(dataGrid[col, row].Value.ToString());
sw.Write('\t');
}
sw.WriteLine();
//sw.Flush(); <- also doesn`t work if uncommented
}
}
}
catch (Exception)
{
//MessageBox.Show(exc.Message);
throw;
}
}
}
}
当我将大数据从数据库下载到 gridview(超过 35 万条记录)并尝试将其导出到 txt 文件中时,在大约 20 万条记录后我得到“OutOfMemoryException”... 你知道如何从 DataGridView 导出大数据吗?
最好的问候, 迈克尔
【问题讨论】:
-
您是否尝试过遍历您的 DataGridView 并将内容保存到 StringBuilder(),然后使用 StreamWriter 将该字符串写入您的文本文件?
-
我正在尝试使用剪贴板,但它运行缓慢并且还会导致内存不足异常:(
标签: c# exception datagridview export streamwriter