.net反射实例(优化后)

    技术2022-05-20  47

    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>();            Hashtable hashValue = new Hashtable();            Model.Ppt model = new Model.Ppt();            object temp=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())                {                    hashValue = new Hashtable();                    temp = new Model.Ppt();                    foreach (string fName in field)                    {                        for (int i = 0; i < fieldNum; i++)                        {                            if ("*" == fName)                            {                                if (DBNull.Value != reader[infos.Name])                                {                                    hashValue.Add(infos.Name, reader[infos.Name]);                                    infos.SetValue(temp, hashValue[infos.Name], null);                                }                            }                            else                            {                                if (infos.Name == fName)                                {                                    if (DBNull.Value != reader[infos.Name])                                    {                                        hashValue.Add(infos.Name, reader[infos.Name]);                                        infos.SetValue(temp, hashValue[infos.Name], null);                                    }                                    break;                                }                            }                        }                    }                    list.Add((Model.Ppt)temp);                }            }            return list;        }


    最新回复(0)