2016-08-23 24 views
2

在我的应用程序中,我查询数据库,并且想要将string.Format("{0:n}")应用于我的结果,以便结果中包含逗号和小数。如何将string.Format应用于SQL结果?

但是,我无法正常工作。代码编译,并且一切工作正常,但数字没有格式化我想要他们。

这里是我当前的代码:

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

@Rakitić,这正是我需要做的。谢谢! –

+0

你也可以使用'string.Format(“{0:C}”''并从字符串'“Amount:$”'中移除'$',因为** $ **会自动添加。 –

回答

2

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

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

或使用:

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

(我相信你有Decimal类型的钱,在任何情况下,它应该被用来对货币的一个)

+0

AHHHHHHHHHHHHHHH。哈哈我感到非常愚蠢,非常感谢! –