gpt4 book ai didi

c# - 使用 Entity Framework 对十进制数进行缩放

转载 作者:行者123 更新时间:2023-11-30 15:40:52 24 4
gpt4 key购买 nike

我有一个表,其中包含一个名为 Days1 的已定义字段,作为 decimal(5,2) 此表映射到 edmx 文件中,并且有一个将值插入此表的过程。

每当我尝试用我的代码插入值 7.5 时

x.Days1 = 7.5;

我收到以下错误:

"Error converting data type numeric to decimal."

如果我使用相同的值执行过程,则不会发生错误。如果我将值 7.51 放入我的代码中:

x.Days1 = 7.51

没有错误出现。我认为问题在于点后的位数。我必须为值 7.5 做什么我怎样才能将它作为 7.50 发送

存储过程:

ALTER PROCEDURE [dbo].[proc_EmployeeBalanceInsert]
(
@EmployeeBalanceID char(36),
@EmployeeID char(36),
@LeaveRegulationID char(36),
@AttendanceTypeID char(36),
@BalanceOpenDate datetime,
@DateFrom datetime,
@DateTo datetime,
@BalanceUpToDate datetime = NULL,
@ValidUntilDate datetime,
@LeaveTransactionTypeID char(1) ,
@TransactionSign int = NULL,
@Days1 decimal(5,2) = NULL,
@Days2 decimal(5,2) = NULL,
@Days3 decimal(5,2) = NULL,
@Days4 decimal(5,2) = NULL,
@Days5 decimal(5,2) = NULL,
@System int = NULL,
@CreationDate datetime = NULL,
@BatchID char(36) = NULL
)
AS
BEGIN
SET NUMERIC_ROUNDABORT on

SET NOCOUNT OFF
DECLARE @Err int

INSERT
INTO [EmployeeBalance]
(
[EmployeeBalanceID], [EmployeeID], [LeaveRegulationID],
[AttendanceTypeID], [BalanceOpenDate], [DateFrom],
[DateTo], [BalanceUpToDate], [ValidUntilDate],
[LeaveTransactionTypeID], [TransactionSign], [Days1],
[Days2], [Days3], [Days4],
[Days5], [System], [CreationDate],
[BatchID]
)
VALUES
(
@EmployeeBalanceID, @EmployeeID, @LeaveRegulationID,
@AttendanceTypeID, @BalanceOpenDate, @DateFrom,
@DateTo, @BalanceUpToDate, @ValidUntilDate,
@LeaveTransactionTypeID, @TransactionSign, @Days1,
@Days2, @Days3, @Days4,
@Days5, @System, @CreationDate,
@BatchID
)

SET @Err = @@Error

RETURN @Err
END

最佳答案

我通过在保存数据之前添加以下代码解决了我的问题:

x.Days1 = Convert.ToDecimal(x.Days1.ToString("n2"));

关于c# - 使用 Entity Framework 对十进制数进行缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com