示例#1
0
        /// <summary>
        /// 填充对象列表:用DataTable填充实体类
        /// </summary>
        public static List <N> FillModel <N>(DataTable dt)
        {
            if (dt == null || dt.Rows.Count == 0)
            {
                return(null);
            }
            List <N> modelList = new List <N>();

            foreach (DataRow dr in dt.Rows)
            {
                N model = (N)Activator.CreateInstance(typeof(N));
                //  N model = (N)Activator.CreateInstance();
                for (int i = 0; i < dr.Table.Columns.Count; i++)
                {
                    PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName);
                    if (propertyInfo != null && dr[i] != DBNull.Value)
                    {
                        propertyInfo.SetValue(model, NTool.HConvertByType(dr[i].ToString(), propertyInfo.PropertyType), null);
                    }
                }

                modelList.Add(model);
            }
            return(modelList);
        }
示例#2
0
        public static void SetModelFieldVal(PropertyInfo[] pi, ref Object obj, string keyPostOrGet, string val)
        {
            List <PropertyInfo> kvp = pi.Where(a => a.Name.ToLower().Trim().Equals(keyPostOrGet.ToLower().Trim())).Skip(0).Take(1).ToList();

            if (kvp != null && kvp.Count > 0)
            {
                Type tp = kvp[0].PropertyType;

                if (string.IsNullOrEmpty(val))
                {
                    return;
                }

                object _o = NTool.HConvertByType(val, tp);

                kvp[0].SetValue(obj, _o, null);
            }
        }
示例#3
0
        public static bool ModelSetVal <T>(ref T modelVal, Dictionary <string, string> vl)
        {
            if (!IsDcNULL <string, string>(vl))
            {
                return(false);
            }

            Type   type = typeof(T);
            object obj  = type.Assembly.CreateInstance(type.FullName);

            foreach (PropertyInfo pi in obj.GetType().GetProperties())
            {
                string val  = "";
                string name = "";
                try
                {
                    KeyValuePair <string, string> kvp =

                        (KeyValuePair <string, string>)vl.Where(a => a.Key.ToLower().Trim().Equals(pi.Name.ToLower().Trim())).Skip(0).Take(1).
                        FirstOrDefault();

                    val  = kvp.Value + "";
                    name = "" + pi.Name;
                }
                catch (Exception ex)
                {
                }
                Type tp = pi.PropertyType;

                if (string.IsNullOrEmpty(val))
                {
                    continue;
                }

                object _o = NTool.HConvertByType(val, tp);

                pi.SetValue(obj, _o, null);
            }

            modelVal = (T)obj;

            return(true);
        }