实用处理计算数据的小例子

记录一些常用的简单方法,避免后期因为小细节未处理回溯修改bug问题:

1.处理数组遍历出的值有可能是null,

         我们都知道数据库(如mysql)字段值为null时,传到程序的后台,编译器会自动处理为DBnull,当我们确定有些字段值是选填项(换言之,有时有值,有时为null),遍历的时候可以这样处理:

        /// <summary>
        /// 获取直属下级用户
        /// </summary>
        /// <param Name="parentCode">上级用户代码</param>       
        /// <returns></returns>
        /// <remarks>
        /// author:test
        /// 2018-04-27
        /// </remarks>
 public MyUserInfo  Get_LevelUserInfo()
        {
            try
            {
               //标明读写操作
                IDbShell shell =Common.GetIDbShell(ActionType.Write);
                string sql = "";
                DataTable dt = shell.ExecuteQueryDataTable(sql);
                if (dt != null && dt.Rows.Count > 0)
                {
                    user = new UserInfo();                 
                    user.TypeId = Convert.ToInt32(dt.Rows[0]["type_id"]);
                    user.ParentCode = Convert.ToString(dt.Rows[0]["parent_uid"]);
               //处理null时方法
                    user.Contact_Name = dt.Rows[0]["contact_name"] == null? null:Convert.ToString(dt.Rows[0]["contact_name"]);                                       
                          
                }
               
                return user;
            }
            catch (Exception ex)
            {
                Common.SaveErrorLog(ex.Message);
                throw ex;
            }
        }

2.处理多列(sum、count)统计数据


-- 处理统计时两列数据求count值
SELECT (count(gender)+COUNT(age)) as tongji FROM `ls` where gender=1;
-- 处理统计时两列数据求sum值
SELECT (sum(gender)+sum(age)) as tongji FROM `ls` where gender=1;

3.处理求和中有null的统计数据

-- 处理统计时含null数据求sum值
select       ifnull(sum(o.lieone),0) as t_lieone,
	         ifnull(sum(o.lietwo),0) as t_lietwo,
	         ifnull(sum(o.liethree),0) as t_liethree,
	         ifnull(sum(o.liefour),0) as t_liefour,
	         ifnull(sum(o.five),0) as t_five
from userinfo o

猜你喜欢

转载自my.oschina.net/u/3544533/blog/1802005