-1

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

1 回答 1

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会自动关闭。

于 2012-10-10T12:36:28.230 回答