.net 反射实例

    技术2022-05-20  47

    /// <summary>        /// 分页查询;函数中,存储过程参数含义见接口文档        /// </summary>        /// <param name="table_Name">表或视图名</param>        /// <param name="Fields">字段列表,“*”为全部字段</param>        /// <param name="limit_Condition">where条件(不用带where)</param>        /// <param name="order_By">排序关键字(不用带order by)</param>        /// <param name="order_Direction">查询顺序(升序asc或降序desc)</param>        /// <param name="page_Size">每页显示条数</param>        /// <param name="current_Page">当前页码</param>        /// <returns>返回一个数据集</returns>        public List<Model.Ppt> Select(string table_Name, string Fields, string limit_Condition, string order_By, string order_Direction, int page_Size, int current_Page)        {            SqlParameter[] para = new SqlParameter[7];

                para[0] = new SqlParameter("@TableName", table_Name);            para[1] = new SqlParameter("@ReFieldsStr", Fields);            para[2] = new SqlParameter("@OrderString", order_By);            para[3] = new SqlParameter("@OrderDirection", order_Direction);            para[4] = new SqlParameter("@WhereString", limit_Condition);            para[5] = new SqlParameter("@PageSize", page_Size);            para[6] = new SqlParameter("@PageIndex ", current_Page);

                List<Model.Ppt> list = new List<Model.Ppt>();            Model.Ppt model = new Model.Ppt();            int fieldNum = 18;            PropertyInfo[] infos = model.GetType().GetProperties();            string[] field = Fields.Split(',');

                using (SqlDataReader reader = SQLHelper.ExecuteReader(conn, CommandType.StoredProcedure, "PROCE_PAGECHANGE", para))            {                while (reader.Read())                {                    model = new Model.Ppt();                    foreach (string fName in field)                    {                        for (int i = 0; i < fieldNum;i++ )                        {                            if ("*" == fName)                            {                                if (infos.PropertyType == Type.GetType("Systerm.String"))                                {                                    if (DBNull.Value != reader[infos.Name])                                    infos.SetValue(model, (string)reader[infos.Name], null);

                                    }

    if (infos.PropertyType == Type.GetType("System.Int32"))                                {                                    if (DBNull.Value != reader[infos.Name])                                    infos.SetValue(model, (int)reader[infos.Name], null);                                }                                if (infos.PropertyType == Type.GetType("System.Double"))                                {                                    if (DBNull.Value != reader[infos.Name])                                    infos.SetValue(model, (double)reader[infos.Name], null);                                }                                if (infos.PropertyType == Type.GetType("System.Boolean"))                                {                                    if (DBNull.Value != reader[infos.Name])                                    infos.SetValue(model, (bool)reader[infos.Name], null);                                }

                                    if (infos.PropertyType == Type.GetType("System.DateTime"))                                {                                    if (DBNull.Value != reader[infos.Name])                                    infos.SetValue(model, (DateTime)reader[infos.Name], null);                                }                            }                            else                            {                                if (infos.Name == fName)                                {                                    if (infos.PropertyType == Type.GetType("Systerm.String"))                                    {                                        if (DBNull.Value!=reader[fName])                                        infos.SetValue(model, (string)reader[fName], null);                                    }                                    if (infos.PropertyType == Type.GetType("System.Int32"))                                    {                                        if (DBNull.Value != reader[fName])                                        infos.SetValue(model, (int)reader[fName], null);                                    }if (infos.PropertyType == Type.GetType("System.Double"))                                    {                                        if (DBNull.Value != reader[fName])                                        infos.SetValue(model, (double)reader[fName], null);                                    }                                    if (infos.PropertyType == Type.GetType("System.Boolean"))                                    {                                        if (DBNull.Value != reader[fName])                                        infos.SetValue(model, (bool)reader[fName], null);                                    }

                                        if (infos.PropertyType == Type.GetType("System.DateTime"))                                    {                                        if (DBNull.Value != reader[fName])                                        infos.SetValue(model, (DateTime)reader[fName], null);                                    }                                }                            }                        }                    }

                        list.Add(model);                }            }            return list;

            }


    最新回复(0)