我使用CsvWriter从Server中的表导出数据,有两个问题:
Server代码加载测试数据
DECLARE @cnt INT = 0;
DECLARE @rows INT = 1; /* I tested 5, 30 and 50 */
WHILE @cnt < @rows
BEGIN
INSERT INTO csvtest(id, a, b) VALUES(NEWID(), @cnt, 'a very very1 very2 very3 very4 long random string');
SET @cnt = @cnt + 1;
END;用于导出数据的C#代码(或多或少是https://joshclose.github.io/CsvHelper/上代码的副本)
// open a database connection
SqlConnection con = new SqlConnection(cs);
con.Open();
string sqlstring = "SELECT * FROM csvTest";
SqlCommand cmd = new SqlCommand(sqlstring, con);
SqlDataReader dr = cmd.ExecuteReader();
var csv = new CsvWriter(new StreamWriter("c:\\tmp\\csvtest_1row.csv"));
while (dr.Read())
{
for (var i = 0; i < dr.FieldCount; i++)
{
csv.WriteField(dr[i]);
}
csv.NextRecord();
}
con.Close();我的CsvHelper版本是2.15.0.2。
二注:
有人能告诉我我做错了什么吗?
提前谢谢你的帮助。
发布于 2016-07-14 22:48:19
必须显式或使用“使用{.}”关闭StreamWriter。否则,它将不会刷新缓冲区,因此文件的尾部将丢失。
https://stackoverflow.com/questions/38384951
复制相似问题