思想

拨开迷雾见青天

导航

偷懒的类型转换

在业务层方法中经常会读取数据层方法获取一些值,并返回值给表现层。往往数据层->业务层返回的是一种类型,比如 object,业务层->表现层又要去返回另一种类型的值,比如 int、string,如何可以方便的处理类型的转换呢?

出于偷懒的想法,所以写了以下方法:

        /// <summary>
        /// 转化值为某类型
        /// </summary>
        /// <typeparam name="T">要转化的类型</typeparam>
        /// <param name="val">要转化的值</param>
        /// <param name="defaultVal">默认值</param>
        /// <returns></returns>
        protected T ParseValue<T>(object val, object defaultVal)
        {
            if (val == null || val == DBNull.Value)
            {
                return (T)Convert.ChangeType(defaultVal, typeof(T));
            }
            return (T)Convert.ChangeType(val, typeof(T));
        }

运用实例:

业务层:

        /// <summary>
        /// 获取最大员工编号
        /// </summary>
        /// <returns></returns>
        public int GetMaxEmployeeID()
        {
            object val = dtEmployee.GetMaxEmployeeID();
            return ParseValue<int>(val, 0);
        }

数据层:

        /// <summary>
        /// 获取最大员工编号
        /// </summary>
        public object GetMaxEmployeeID()
        {
            string sql = "select  max(Employee_ID) from t_employee ";
            return MySQLHelper.ExecuteScalar(sql);
        }

posted on 2008-10-09 08:19  Will Lu  阅读(273)  评论(0编辑  收藏  举报