StreamWriter不写最后一个值

本文关键字:最后一个 StreamWriter | 更新日期: 2023-09-27 18:05:29

我有一些执行SQL存储过程的代码,然后将结果写入CSV文件,但是最后一个值没有写入文件。

代码:

conn = new SqlConnection(_sConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("usp_PS_Test", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@ExportDate", DateTime.Now));
cmd.Parameters.Add(new SqlParameter("@SiteId", _iSiteId));
using(SqlDataReader rdr = cmd.ExecuteReader())
    using(StreamWriter salesWriter = new StreamWriter(_sSalesFileName))
        while(rdr.Read())
        {
            salesWriter.WriteLine("{0},{1},{2},{3},{4}",rdr["TransactionDate"],rdr["ProductCode"] , rdr["Qty"] ,rdr["Price"] , rdr["NominalCode"]);
        }

列"NominalCode"没有写入文件,有什么建议吗?

我已经尝试了相同的代码,但使用不同的存储过程,最后一列再次丢失。

存储过程返回的数据:

TransactionDate ProductCode Qty Price   NominalCode
2015-07-30 00:00:00 SERVICE 1   45.00   4000001
2015-07-30 00:00:00 SERVICE 1   15.00   4000001

还有,愚蠢的时刻,我如何将"价格"列格式化为货币/货币格式?

谢谢

StreamWriter不写最后一个值

结果(正如我所承认的那样),代码中存在一个不同的潜在问题,其中为存储过程设置了一个参数。这反过来又没有正确连接以检索所需值。

谢谢你的帮助和建议。