CsvHelper CsvWriter пуст, когда исходный DataTable содержит менее 12 строк - PullRequest
1 голос
/ 02 апреля 2020

При записи в поток (возможно, и в других местах назначения) CsvHelper ничего не возвращает, если моя DataTable содержит менее 12 строк. Я тестировал добавление строк одну за другой, пока не получил результат в строковой переменной myCsvAsString.

Кто-нибудь сталкивался с этой проблемой? Вот код, который я использую для его воспроизведения:

        var stream = new MemoryStream();

        using (var writer = new StreamWriter(stream))
        using (var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            if (includeHeaders)
            {
                foreach (DataColumn column in dataTable.Columns)
                {
                    csvWriter.WriteField(column.ColumnName);
                }

                csvWriter.NextRecord();
            }

            foreach (DataRow row in dataTable.Rows)
            {
                for (var i = 0; i < dataTable.Columns.Count; i++)
                {
                    csvWriter.WriteField(row[i]);
                }

                csvWriter.NextRecord();
            }

            csvWriter.Flush();
            stream.Position = 0;
            StreamReader reader = new StreamReader(stream);
            string myCsvAsString = reader.ReadToEnd();
         }

1 Ответ

0 голосов
/ 03 апреля 2020

Хорошо, я нашел проблему, я сбрасывал csvWriter, но я не грипп sh StreamWriter.

Я добавил writer.Flu sh () сразу после csvWriter.Flu sh ( ) и поток завершен.

...