2015-07-30 6 views
0

У меня есть код, который выполняет хранимую процедуру 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 

Кроме того, глупый момент, как я могу отформатировать столбец «Цена», чтобы быть в формате валюты/денег?

Спасибо

+0

'как я могу отформатировать столбец« Цена »в формате валюты/денег?' Try '{3: C}' – crush

+3

Вы уверены, что ваша хранимая процедура возвращает столбец с именем 'NominalCode'? Можете ли вы вставить образец того, что возвращает хранимая процедура? – crush

+2

Проблема не в StreamWriter, если вы имеете в виду, что она печатает несколько строк, но каждая строка пропускает последний столбец. Это ваши данные. Идите в отладку, введите переменную 'string toWrite = string.Format (« строка формата »)'. – CodeCaster

ответ

1

Оказывается (как и следовало ожидать, я признаю), что был другой основной проблемой в коде, где был установлен параметр для хранимой процедуры. Это, в свою очередь, не входило правильно, чтобы получить требуемое значение.

Благодарим за помощь и совет.

Смежные вопросы