数据库为 NULL 时取消处理

本文关键字:取消 处理 NULL 数据库 | 更新日期: 2023-09-27 18:35:22

DatabaseDataContext db = new DatabaseDataContext();   
var TMACost = (from emp in db.Incomes where emp.Time > DateTime.Today.AddMonths(-1) select emp.Cost).Sum();    
Label15.Text = TMACost.ToString();

我想对数据库中的值求和,但在数据库为空时无法运行,有什么想法吗?

数据库为 NULL 时取消处理

使用可空数字的强制转换。当表为空时,这将返回 null。然后,您可以使用合并运算符:

var TMACost = (
    from emp in db.Incomes 
    where emp.Time > DateTime.Today.AddMonths(-1) 
    select (decimal?) emp.Cost
    ).Sum() ?? 0m;

您正在尝试对可能返回 null 的值求和,因此只需在求和之前检查其是否为 null

DatabaseDataContext db = new DatabaseDataContext();   
var TMACost = (from emp in db.Incomes where emp.Time > DateTime.Today.AddMonths(-1) select emp.Cost); 
Label15.Text = (TMACost.length!=DBNull.Value)?TMACost.Sum().ToString():"0";