C# Entity FrameWork - 十进制错误
C# Entity FrameWork - Decimal error
正在尝试执行此代码:
process.POPManagerPreparation.JudgementPercentage = (decimal?)txtAlternativePercentage.Value;
工作正常,但是当执行代码 Context.Current.SaveChanges();
将其保存在数据库中时,会发生此 ArgumentException:
An error occurred while updating the entries. See the inner exception for details.
System.ArgumentException: Parameter value '3,0000' is out of range.
这绝对是关于我添加的字段,我知道是因为它的价值。 (当我检查其他输入时它会改变)
我试过把我的电脑设置从NL-nl改成US-en,感觉好像有问题但是没有解决,还是一样的错误。
也在文本字段上尝试了一些东西,仍然是同样的错误:
<telerik:RadNumericTextBox MinValue="0" MaxLength="100" ID="txtAlternativePercentage"
runat="server" Type="Percent" Culture="en-US" Width="80px" LabelCssClass=""
Label="Verhogingspercentage:" LabelWidth="130" AutoPostBack="true"
OnTextChanged="SalaryChanged" Visible="false">
<NumberFormat DecimalDigits="1" />
<IncrementSettings InterceptArrowKeys="False" InterceptMouseWheel="False" />
</telerik:RadNumericTextBox>
为了完整起见,数据库字段是:decimal(10, 5)
所以这似乎也没问题。在网上发现了很多关于使用太小字段的人的问题,但我的问题没有。
您可以在模型构建器中指定属性的精度:
modelBuilder.Entity<POPManagerPreparation>()
.Property(e => e.JudgementPercentage)
.HasPrecision(10,5);
我通过像 Pankaj Gupta 建议的那样更改为浮动字段来解决它。这很好用。
所以我学会了不使用小数,除非您确定该值对其期望的小数形式严格。
正在尝试执行此代码:
process.POPManagerPreparation.JudgementPercentage = (decimal?)txtAlternativePercentage.Value;
工作正常,但是当执行代码 Context.Current.SaveChanges();
将其保存在数据库中时,会发生此 ArgumentException:
An error occurred while updating the entries. See the inner exception for details.
System.ArgumentException: Parameter value '3,0000' is out of range.
这绝对是关于我添加的字段,我知道是因为它的价值。 (当我检查其他输入时它会改变)
我试过把我的电脑设置从NL-nl改成US-en,感觉好像有问题但是没有解决,还是一样的错误。
也在文本字段上尝试了一些东西,仍然是同样的错误:
<telerik:RadNumericTextBox MinValue="0" MaxLength="100" ID="txtAlternativePercentage"
runat="server" Type="Percent" Culture="en-US" Width="80px" LabelCssClass=""
Label="Verhogingspercentage:" LabelWidth="130" AutoPostBack="true"
OnTextChanged="SalaryChanged" Visible="false">
<NumberFormat DecimalDigits="1" />
<IncrementSettings InterceptArrowKeys="False" InterceptMouseWheel="False" />
</telerik:RadNumericTextBox>
为了完整起见,数据库字段是:decimal(10, 5)
所以这似乎也没问题。在网上发现了很多关于使用太小字段的人的问题,但我的问题没有。
您可以在模型构建器中指定属性的精度:
modelBuilder.Entity<POPManagerPreparation>()
.Property(e => e.JudgementPercentage)
.HasPrecision(10,5);
我通过像 Pankaj Gupta 建议的那样更改为浮动字段来解决它。这很好用。
所以我学会了不使用小数,除非您确定该值对其期望的小数形式严格。