C# LINQ 如何显示返回空值 高手帮忙解决一下

publicSystem.Nullable<decimal>GetTj_ALL_FZ3(intuid){using(ZGXTContextdb=newZGXTContex... public System.Nullable<decimal> GetTj_ALL_FZ3(int uid)
{
using (ZGXTContext db = new ZGXTContext())
{var query = from a in db.SupplierShallPays
select new SupplierShallPay_info
{ AmountMoney = a.AmountMoney,
State = a.State,
nowYEAR = System.Data.Entity.SqlServer.SqlFunctions.DateName("yyyy", DateTime.Now),/////取当前年
YEAR = System.Data.Entity.SqlServer.SqlFunctions.DateName("yyyy", a.CreateTime),///取创建日期的年份
YUE = System.Data.Entity.SqlServer.SqlFunctions.DateName("MM", a.CreateTime),///取创建日期的月份

};
query.Where(q => q.State > 0 && q.YUE == "03" && q.YEAR == q.nowYEAR).Select(q => q.AmountMoney).Sum();
}
}
-------------------
1、q.YUE==“03” 是不成立的。因为YUE是取创建日期的月份,数据库没有3月份的数据。
2、发布后出现  到值类型“System.Decimal”的强制转换失败,因为具体化值为 null。结果类型的泛型参数或查询必须使用可以为 null 的类型。
3、如果出现NULL值,是否默认为0。
YEAR YUE nowYEAR 都是虚拟的String
展开
 我来答
百度网友339ff32
2016-06-08 · TA获得超过201个赞
知道答主
回答量:128
采纳率:0%
帮助的人:53.2万
展开全部
可以加个判断
public System.Nullable<decimal> GetTj_ALL_FZ3(int uid)
{
using (ZGXTContext db = new ZGXTContext())
{var query = from a in db.SupplierShallPays
select new SupplierShallPay_info
{ AmountMoney = a.AmountMoney,
State = a.State,
nowYEAR = System.Data.Entity.SqlServer.SqlFunctions.DateName("yyyy", DateTime.Now),/////取当前年
YEAR = System.Data.Entity.SqlServer.SqlFunctions.DateName("yyyy", a.CreateTime),///取创建日期的年份
YUE = System.Data.Entity.SqlServer.SqlFunctions.DateName("MM", a.CreateTime),///取创建日期的月份

};

int num= query.Where(q => q.State > 0 && q.YUE == "03" && q.YEAR == q.nowYEAR).count();
if(num>0 ){
query.Where(q => q.State > 0 && q.YUE == "03" && q.YEAR == q.nowYEAR).Select(q => q.AmountMoney).Sum();
}

}
}
追问


出现同样的错误 

追答
Decimal sum = 0;
int list= query.Where(q => q.State > 0 && q.YUE == "03" && q.YEAR == q.nowYEAR).ToList();
foreach (var item in list)
{
sum+=Convert.ToDecimal(string.IsNullOrEmpty(item.AmountMoney) ? "0" : item.地址);
}
return Decimal ;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式