2016-08-23 58 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。哈哈我感到非常愚蠢,非常感謝! –