Как применить 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 введите для денег, в любом случае это должен быть тот, который используется для денег.)

Другие вопросы по тегам