C# LINQ中SUM,MAX,MIN时如果数据为空,报错NULL


当使用linq求和sum()时,如果某列数据为null,就会出现异常

使用下面的语句即可解决相关问题:

db.TableModel.Where(w => w.ID == ID).Select(s=>s.SMoney).DefaultIfEmpty(0m).Sum();

当smoney字段可为null,且数据行中存在NULL时,使用以上语句可默认为0,最终使求和正常。

 

根据条件将筛选字段或数据行取到内存后,在求和

//将数据库数据拿到内存再求和
decimal sum = _member.DbSet.Where(q => q.MemberID == 11)
    .Select(q => q.ActiveAmount)
    .ToList()
    .Sum();

如果根据条件当筛选数据行不存在时,求和结果需要指定为null时,可以这样处理

decimal? sum = _member.DbSet
    .Where(q => q.MemberID == 11)
    .Sum(q => (decimal?)q.ActiveAmount);

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:C#获得当前日期是一年中的第几周
下一篇:C#根据年份和第几个星期,获得这个星期的日期范围
评论列表

发表评论

评论内容
昵称:
关联文章

C# LINQSUM,MAX,MIN如果数据NULL
Linq to SQL语句基础讲解
表结构修改>新增主键或者不能的列
C#8.0 可引用类型
WCF常见的:The content type text
C#判断类型是否可
C#HTTP请求RestSharp.RestClient发起https请求
插入代码页面
Linq和Lambda 性能对比
EFCore链接数据库
Python多线程试用wmi
EntityFramework Linq 查询数据获得树形结构
VS .NET使用EF添加实体数据模型向导添加连接
IIS应用程序池自动停止,重启
了解LINQ
消息发送的问题
阿里云搭建FTP服务器访问 200,227错误
html发布到服务器后部分jpg:net::ERR_BLOCKED_BY_CLIENT
PC端编译 Empty block statement no-empty
面试官:如果存取IP地址,用什么数据类型比较好 (C#版本)

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码