public static decimal getall(ref decimal? number)
{
var sigma = from p in db.getDPMO1(ref number)
select p.Sigma;
return sigma; // I am getting Cannot Convert decimal? to decimal
}
这是我的存储过程,它采用十进制参数
ALTER PROCEDURE getDPMO1
(@number Decimal OUTPUT)
AS
SELECT
MIN(Sigma_Value) AS Sigma
FROM
Sigma_Table
WHERE
Defect_Rate < @number
RETURN
最佳答案
可能没有满足您的条件的行Defect_Rate < @number
因此结果将是 null
,不是0
。
您可以将sql更改为COALESCE(MIN(Sigma_Value), 0)
或ISNULL(MIN(Sigma_Value), 0)
如果你需要一个可靠的数字。另请注意,存储过程的返回类型应定义为 NOT NULL
.
或者,您可以更改代码以期望出现空值。也就是说,将返回类型更改为 decimal?
而不是decimal
.
关于c# - 如何转换十进制?将 LINQ 与存储过程结合使用时转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855139/