zoukankan      html  css  js  c++  java
  • 关于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);
                            }
    

      整个世界清静了。

  • 相关阅读:
    POJ 2388
    HDU 6152
    POJ 3085
    C语言字符数组回顾
    ZOJ 2480
    SQL学习(1)初学实验:SQL Server基本配置及基本操作
    Kali Linux入坑之基本配置(2018.1)
    C学习笔记(逗号表达式)
    C学习笔记(自增)
    forEach()&map()区别
  • 原文地址:https://www.cnblogs.com/wonder223/p/9549633.html
Copyright © 2011-2022 走看看