Esempio n. 1
0
        //获取单实体
        public List <T> GetEntity(SqlDataReader dr)
        {
            List <T> list = new List <T>();

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    T destObj = new T();
                    foreach (PropertyInfo prop in typeof(T).GetProperties())
                    {
                        try
                        {
                            if (prop.IsDefined(typeof(FieldNameAttribute), true))
                            {
                                FieldNameAttribute attribute = prop.GetCustomAttributes(typeof(FieldNameAttribute), true)[0] as FieldNameAttribute;

                                prop.SetValue(destObj, ChangeType(prop.PropertyType, dr[attribute.FieldName]));
                            }
                            else
                            {
                                prop.SetValue(destObj, ChangeType(prop.PropertyType, dr[prop.Name]));
                            }
                        }
                        catch { }
                    }
                    list.Add(destObj);
                }
            }
            return(list);
        }
Esempio n. 2
0
        //获取实体的SqlParameter
        public SqlParameter[] GetSqlParameter(T t)
        {
            PropertyInfo[] property = t.GetType().GetProperties();

            List <SqlParameter> parameters = new List <SqlParameter>();

            foreach (var item in property)
            {
                if (item.IsDefined(typeof(FieldNameAttribute), true))
                {
                    FieldNameAttribute attribute = item.GetCustomAttributes(typeof(FieldNameAttribute), true)[0] as FieldNameAttribute;
                    if (string.IsNullOrEmpty(item.GetValue(t)?.ToString()))
                    {
                        parameters.Add(new SqlParameter("@" + attribute.FieldName, DBNull.Value));
                    }
                    else
                    {
                        parameters.Add(new SqlParameter("@" + attribute.FieldName, item.GetValue(t)));
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(item.GetValue(t)?.ToString()))
                    {
                        parameters.Add(new SqlParameter("@" + item.Name, DBNull.Value));
                    }
                    else
                    {
                        parameters.Add(new SqlParameter("@" + item.Name, item.GetValue(t)));
                    }
                }
            }
            return(parameters.ToArray());
        }
Esempio n. 3
0
        //获取查询的列名
        public object[] Columns()
        {
            T         model      = new T();
            ArrayList columnList = new ArrayList();

            //处理查询的列名
            foreach (PropertyInfo item in model.GetType().GetProperties())
            {
                //判断是否有别名
                if (item.IsDefined(typeof(FieldNameAttribute), true))
                {
                    FieldNameAttribute attribute = item.GetCustomAttributes(typeof(FieldNameAttribute), true)[0] as FieldNameAttribute;
                    columnList.Add(attribute.FieldName);
                }
                else
                {
                    columnList.Add(item.Name);
                }
                //。。。可添加另外的
            }
            return(columnList.ToArray());
        }