小鸟慢飞

博客园 首页 联系 订阅 管理
    class ModelHandler<T> where T : new()
    {
        public List<T> FillModel(DataTable dt)
        {
            if (dt == null || dt.Rows.Count <= 0)
            {
                return null;
            }
            List<T> models = new List<T>();
            foreach (DataRow row in dt.Rows)
            {
                models.Add(FillModel(row));
            }

            return models;
        }

        public T FillModel(DataRow row)
        {
            if (row == null)
            {
                return default(T);
            }
            //获取模型实体对象;
            T model = new T();
            //获取模型实体对象类型;
            Type type = model.GetType();
            //获取模型实体对象类公开属性;
            PropertyInfo[] propertyinfos = type.GetProperties();
            //遍历模型实体对象类公开属性;
            foreach (PropertyInfo propertyinfo in propertyinfos)
            {
                //取得实体对象类公开属性名;
                string propertyinfoName = propertyinfo.Name;
                //判断DataRow数据类型是否为DBNull.Value
                if (row[propertyinfoName] != DBNull.Value)
                {
                    //将DataRow的数值填充至对应的模型实体对象属性中;
                    type.GetProperty(propertyinfoName).SetValue(model, row[propertyinfoName], null);
                }
            }
            return model;
        }

    }

  

posted on 2012-08-14 22:52  小鸟慢飞  阅读(223)  评论(0编辑  收藏  举报