2017-10-17 62 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