如何关闭StreamWriter对象

时间:2012-10-10 12:27:07

标签: c# sql c#-4.0 csv streamwriter

我的申请中有一个问题。我需要从两个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++)
        {
        }
     }
 }

1 个答案:

答案 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将自动关闭。