码迷,mamicode.com
首页 > 其他好文 > 详细

DataRow映射实体

时间:2015-03-20 12:30:41      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

 public static T ConvertToModel<T>(DataRow dr) where T : new()
        {
            T t = new T();
            Type modelType = t.GetType();
            foreach (PropertyInfo pi in modelType.GetProperties())
            {
                if (pi == null) continue;
                if (pi.CanWrite == false) continue;

                if (dr.Table.Columns.Contains(pi.Name))
                {
                    //p.SetValue(t, GetDefaultValue(dr[p.Name], p.PropertyType), null);
                    try
                    {
                        if (dr[pi.Name] != DBNull.Value)
                            pi.SetValue(t, dr[pi.Name], null);
                        else
                            pi.SetValue(t, default(object), null);
                    }
                    catch
                    {
                        pi.SetValue(t, GetDefaultValue(dr[pi.Name], pi.PropertyType), null);
                    }
                }

            }
            return t;
        }

        private static object GetDefaultValue(object obj, Type type)
        {
            if (obj == DBNull.Value)
            {
                return default(object);
            }
            else
            {
                return Convert.ChangeType(obj, type);
            }
        }

  纯代码难得打字

DataRow映射实体

标签:

原文地址:http://www.cnblogs.com/gclearn/p/4353012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!