当源数据表包含少于12行时,CsvWriter为空

问题描述 投票:1回答:1

[写入流时(也许也有其他目的地),如果我的DataTable包含少于12行,则CsvHelper不会返回任何内容。我测试了逐行添加行,直到在字符串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();
         }
c# stream csvhelper
1个回答
0
投票

好吧,我发现了问题,我在刷新csvWriter,但没有刷新StreamWriter。

我在csvWriter.Flush()之后添加了writer.Flush(),并且流完成了。

© www.soinside.com 2019 - 2024. All rights reserved.