Как применить string.Format к результатам SQL?
В моем заявлении я запрашиваю базу данных и хотел бы применить string.Format("{0:n}")
к моим результатам, так что результаты имеют запятые и десятичные числа.
Тем не менее, у меня возникли проблемы с его правильной работой. Код компилируется, и все работает нормально, но числа не отформатированы так, как я хочу.
Вот мой текущий код:
using (CacheConnection myConnection = new CacheConnection())
{
myConnection.ConnectionTimeout = 9999;
myConnection.ConnectionString = monthPropStruct.connectionString;
myConnection.Open();
using (CacheCommand myCommand = new CacheCommand(sqlTest, myConnection))
{
myCommand.CommandTimeout = 9999;
using (CacheDataReader myReader = myCommand.ExecuteReader())
{
while (myReader.Read())
{
myWriter = new StreamWriter(myParameters.fullSaveDirectory, true);
myWriter.WriteLine("Amount: $" + string.Format("{0:n}", myReader[myReader.GetOrdinal("total_amt")]));
myWriter.Close();
}
}
}
}
Текущий результат, который я получаю - "245687" или что-то еще, но я бы хотел, чтобы он отображался как 245,678.00
1 ответ
Форматирование строк будет работать для числовых значений, тогда как ваш код myReader[myReader.GetOrdinal("total_amt")])
вернет объект. Преобразуйте ваше значение в числовое, а затем примените форматирование следующим образом
Convert.ToDecimal((myReader[myReader.GetOrdinal("total_amt")]))
Или используйте:
pReader.GetDecimal(pReader.GetOrdinal("total_amt"))
(Я верю, что у вас есть Decimal
введите для денег, в любом случае это должен быть тот, который используется для денег.)