我正在尝试将一些数据从datatable导出到.csv文件。但是这些数据并没有作为空白文件来到.csv文件
答案 0 :(得分:2)
应关闭StreamWriter以将写入其内部缓冲区的数据刷新到文件中。
所以你真的需要将StreamWriter
的创建括在using statement内。
using语句管理文件的关闭并释放系统资源(文件句柄)。当异常情况下,当你到达使用区块末尾的右括号时,所有这些都会自动发生。
using(StreamWriter sw = new StreamWriter("D:\\report.csv"))
{
... all the code that read the datatable and write in the stream....
} // here you get: sw.Flush(); sw.Close(); sw.Dispose();
似乎您也在最后一列的每行末尾添加逗号。
在循环内线
if(i != dt.Columns.Count)
永远不会假,因为当变量i
到达dt.Columns.Count值时退出循环。将其更改为
if(i < dt.Columns.Count-1)