У меня есть код, который выполняет хранимую процедуру SQL, а затем записывает результат в файл CSV, однако последнее значение не записывается в файл.StreamWriter не записывает последнее значение
Код:
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
Кроме того, глупый момент, как я могу отформатировать столбец «Цена», чтобы быть в формате валюты/денег?
Спасибо
'как я могу отформатировать столбец« Цена »в формате валюты/денег?' Try '{3: C}' – crush
Вы уверены, что ваша хранимая процедура возвращает столбец с именем 'NominalCode'? Можете ли вы вставить образец того, что возвращает хранимая процедура? – crush
Проблема не в StreamWriter, если вы имеете в виду, что она печатает несколько строк, но каждая строка пропускает последний столбец. Это ваши данные. Идите в отладку, введите переменную 'string toWrite = string.Format (« строка формата »)'. – CodeCaster