如何将string.Format应用于SQL结果?

时间:2016-08-23 17:47:09

标签: c# .net casting string.format intersystems-cache

在我的应用程序中,我正在查询数据库,并希望将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 个答案:

答案 0 :(得分:2)

字符串格式化适用于数值,而代码myReader[myReader.GetOrdinal("total_amt")])将返回一个对象。将您的值转换为数字,然后应用格式如:

Convert.ToDecimal((myReader[myReader.GetOrdinal("total_amt")]))

或使用:

pReader.GetDecimal(pReader.GetOrdinal("total_amt"))

(我相信你有Decimal类型的钱,无论如何它应该是用于Money的那种。)