2015-07-14 5 views
0

У меня есть программа C#, которая сравнивает 2 таблицы базы данных и загружает результаты в другую таблицу в базе данных. Я начал получать ошибку maxpackets. Я понимаю, что загруженные результаты были большими.запись C# результат программы в файл csv

Мои мысли заключались в том, чтобы сбрасывать результаты в файл csv. Я попытался следовать нескольким примерам, но моя программа теперь просто кивает. Что у меня не так?

{ 
       string filePath = @"C:\users\rena\documents\test.csv"; 
       string delimiter = ","; 

       string[][] output = new string[][] 
       { 
        new string[] { "col 1 row 1", "col 2 row 1", "col 3 row 1"}, 
        new string[] {"col 1 row 2", "col 2 row 2", "col 3 row 2"} 
       }; 
       int length = output.GetLength(0); 
       StringBuilder sb = new StringBuilder(); 
       for (int index = 0; index < length; index++) 
        sb.AppendLine(string.Join(delimiter, output[index])); 

       if (!File.Exists(filePath)) 

       File.WriteAllText (filePath, sb.ToString()) 

      } 

СПАСИБО !!

+0

имя пользователя рекламирует коммерческий сайт. спам? - выглядит не так: http://meta.stackoverflow.com/questions/253392/is-this-considered-as-spam-or-self-promotion – hoijui

+1

делает даже этот пример срыв? или это просто минимальная версия того, что стоит? можете ли вы сделать минимальную версию, которая останавливается? – hoijui

+0

Ваш код выглядит нормально, какая ошибка? –

ответ

0

Возможно, вы попытаетесь написать буферным потоком. См., Если это более ясно:

void Main() 
{ 

    string filePath = @"c:\temp\test.csv"; 
    string delimiter = ","; 

    string[][] output = new string[][] 
    { 
     new string[] { "col 1 row 1", "col 2 row 1", "col 3 row 1"}, 
     new string[] {"col 1 row 2", "col 2 row 2", "col 3 row 2"} 
     //tried with 2k here 
    }; 
    int length = output.GetLength(0); 
    StringBuilder sb = new StringBuilder(); 


    using (FileStream fileStream = File.Create(filePath)) 
    { 
     using (BufferedStream bufferedStream = new BufferedStream(fileStream)) 
     { 
      using (StreamWriter streamWriter = new StreamWriter(bufferedStream)) 
      { 
       for (int index = 0; index < length; index++) 
        streamWriter.WriteLine(string.Join(delimiter, output[index])); 
      } 
     } 
    } 

    if (!File.Exists(filePath)) 

    File.WriteAllText (filePath, sb.ToString()); 

} 
Смежные вопросы