2017-10-17 30 views
0

我試圖用逗號和點記錄在SQL Server數據庫上的貨幣值。在這個例子中:80,55在數據庫中的狀態如下:8055.c#用逗號和點記錄貨幣

有誰知道我該如何解決這個問題?

在C#我做這樣的:

public decimal ValorPlanoForm { get; set; } 

然後是這樣的:

ValorPlanoForm = message.ValorPlanoForm.ToString("G") 

我使用ASP.NET這樣的:

<div class="col-xs-6 col-sm-6 col-md-2"> 
 
    <div class="form-group"> 
 
     <label asp-for="ValorPlanoForm">Valor do plano</label> 
 
     <input asp-for="ValorPlanoForm" type="number" class="form-control"> 
 
     <span asp-validation-for="ValorPlanoForm"></span> 
 
    </div> 
 
</div>

謝謝。

+1

你想顯示該格式的小數?或者你想讓你的SQL服務器數據以逗號存儲?因爲以逗號/點存儲在SQL中作爲十進制是不可能的 – maccettura

+2

您正在存儲'decimal',而不是'string'。小數不以特定的格式存儲。您可以*以該格式顯示*。 – Amy

+0

對不起,我的壞人。我接受它作爲一個小數,但我將它存儲爲一個字符串,這就是爲什麼我需要用逗號存儲。 – Wilton

回答

1

您可以根據DataType

// Display currency symbol. For country specific currency, set 
// culture using globalization element in web.config. 
// For Great Britain Pound symbol 
// <globalization culture="en-gb"/> 
[DataType(DataType.Currency)] 
public int? Salary { get; set; } 

入住youtube

+0

將貨幣存儲爲「int」是否明智? – maccettura

+0

@maccettura這只是一個例子。重要的部分是'DataType'來改變顯示。 –

+0

爲什麼要將它保存爲字符串?無論如何檢查此答案https://stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for-a-number –

1

這個視頻教程如果我是你,我會使用Money數據類型在SQL Server中的貨幣數據存儲,當你想要用逗號和點顯示數據,可以將其格式化爲前端應用程序,或在SELECT查詢中使用CONVERT()函數。

但要回答您提出的問題,如果您確實想用逗號和點存儲實際數據,則需要將其存儲爲varchar數據類型。

+0

事實上,我收到它作爲十進制但我將它存儲爲一個字符串。但即使如此,它的存儲沒有逗號。 – Wilton

+1

然後,在從應用程序存儲數據的操作過程中,您需要使用所需的點和逗號格式化變量的值。 –

+2

'錢'數據類型是一個壞主意(所以我讀過):https://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in- sql-server – VDWWD