2017-02-15 3 views
0

Ich habe ein Problem mit dem Exportieren von Daten aus DataGridView in. TXT-Datei.DataGridView-Exporteur in C#

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; 
      } 
     } 
    } 
} 

Wenn ich eine große Daten aus der Datenbank in gridview herunterladen (über 350 K Aufzeichnungen) und ich versuche, es in txt-Datei zu exportieren, nach etwa 200 K von Datensätzen I „OutOfMemoryException“ get ... Haben Sie irgendwelche Idee, wie man große Daten von DataGridView exportiert?

Mit freundlichen Grüßen, Michael

+0

Haben Sie durch Ihre Datagridview versucht, Looping und Speichern der Inhalte in einen Stringbuilder() und dann mit Stream stattdessen die Zeichenfolge in Ihre Textdatei zu schreiben? –

+1

Mögliches Duplikat von [Schreiben in eine Textdatei von DataGridView in C# -Fensterform] (http://stackoverflow.com/questions/19311535/writing-to-a-text-file-from-datagridview-in-c-sharp- windows-form) –

+0

Ich habe versucht, mit Zwischenablage, aber es funktioniert zu langsam und verursacht auch nicht genügend Speicher Ausnahme :( – Roofy

Antwort

0

Wenn es kein .txt sein muss, versuchen Sie stattdessen nach Excel exportieren.

Ref How to Export DataGridView Data to Excel by using Excel Object

+0

In diesem Moment habe ich Option, in Excel exportieren - ich verwende nur eine andere Klasse für diesen "ExcelExporter". Aber es nimmt viel Zeit und mit großen Daten (> 100K) verursacht es auch OutOfMemoryException – Roofy