关于Table.Compute("Sum(qty)","XXX")的坑

   decimal totalOnway = 0.0M;
                    if (dtonway != null)
                    {
                        DataRow[] grdrs = dtonway.Select("PartNO='" + dr_MaterialInfo["PartNo"].ToString() + "'");
                        foreach (DataRow grdr in grdrs)
                        {
                            totalOnway += Convert.ToDecimal(grdr["doqty"].ToString());
                        }
                        
                        //totalOnway = Convert.ToDecimal(dtonway.Compute("Sum(doqty)", 
                        //    "PartNO='" + dr_MaterialInfo["PartNo"].ToString() + "'"));    
                    }

  1)开始的时候是上面的程序,一直正常工作。

       2)某天看见上面的程序觉得很蠢,就顺手修改为下面备注部分的程式

        于是就出错了。

      3)仔细找原因,最后发现是有的时候会找不到符合条件的数据的时候Compute出来的数据是DBNull

       4)最终使用下面的解决方案

   

                       object obj= dtonway.Compute("Sum(doqty)",
                            "PartNO='" + dr_MaterialInfo["PartNo"].ToString() + "'");
                        if(obj!=DBNull.Value)
                        {
                            totalOnway = Convert.ToDecimal(obj);
                        }

  整个世界清静了。

转载于:https://www.cnblogs.com/wonder223/p/9549633.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值