我的申请中有一个问题。我需要从两个SQL查询结果中创建两个CSV文件。我创造了那个。我正在使用StreamWriter
将数据写入CSV文件。
我的问题是第一个查询结果也写入第二个文件。我使用StreamWriter.Close()
并且仍然在输出中看到相同的行为。
using (StreamWriter sw = new StreamWriter(strFilePath, false))
{
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
}
}
}
答案 0 :(得分:1)
确保StreamWriter
(或实际上任何IDisposable
资源)关闭的最佳方法是尽可能使用using
语句。方法如下:
using (var writer = new StreamWriter(@"c:\output\file1.csv")) {
foreach (IDataReader row in myQueryResults) {
writer.WriteLine("{0},{1},{2}", row.GetString(0), row.GetString(1), row.GetString(2));
}
}
一旦using
语句的范围正常或通过例外结束,writer
将自动关闭。