C#StreamWriter没有正确写入

时间:2013-05-21 15:10:42

标签: c# .net sql-server-2008 streamwriter

我从sproc中提取数据并将每列写入文件。我从中提取的一个列是备注字段,允许最多4096个字符和硬回车。我已更新我的查询以删除选项卡和返回,这似乎工作。当我将查询结果导出到文件时,备注列全部在一行上。但是,当我使用流编写器将数据写入文件时,它会将数据分成多行。非常感谢任何帮助。

C#代码:

    StreamWriter sw = new StreamWriter("C:\\Temp\\Test.txt");
    DataSet ds = GetData(); //call sproc, return data
    foreach(DataRow dr in ds) {
       sw.WriteLine(dr["Column1"] + "|" + dr["MemoColumn"] + "|" + dr["Column3"]);
    }

Sql Query:

    SELECT replace(replace(replace(isnull(MEMOCOLUMN, ''), CHAR(13), ' '), CHAR(10), ''), CHAR(9), '')
    FROM TABLE1

1 个答案:

答案 0 :(得分:0)

以下应该有效,可能存在拼写错误,但该过程应该有效。

    using (StreamWriter sw = new StreamWriter("C:\\Temp\\Test.txt")) 
    {
     DataSet ds = GetData(); //call sproc, return data
     foreach(DataRow dr in ds.Rows) 
     {
       var column = string.IsNullOrEmpty((dr["MemoColumn"].ToString()) ? string.Empty : 
                    dr["MemoColumn"].ToString().Replace(Environment.NewLine, string.Empty);

       sw.WriteLine("{0}|{1}|{2}", dr["Column1"], column, dr["Column3"]);
     }
    }