zoukankan      html  css  js  c++  java
  • 利用反射将数据读入实体类

    反射DataReader赋值实体

     public static void ReaderToObject<T>(IDataReader reader, T targetObj)
            {
                
    for (int i = 0; i < reader.FieldCount; i++)
                {
                    System.Reflection.PropertyInfo propertyInfo 
    = targetObj.GetType().GetProperty(reader.GetName(i));
                    
    if (propertyInfo != null)
                    {
                        
    if (reader.GetValue(i) != DBNull.Value)
                        {
                            propertyInfo.SetValue(targetObj, reader.GetValue(i).ToString(), 
    null);
                        }
                    }
                }
            }

            
    public static void ReaderToObjects<T>(IDataReader reader, System.Collections.Generic.List<T> targetObjs)
            {
                
    while (reader.Read())
                {
                    T targetObj 
    = System.Activator.CreateInstance<T>();
                    ReaderToObject(reader, targetObj);
                    targetObjs.Add(targetObj);
                }
            } 

    调用:

            /// <summary>
            
    /// 得到数据表fav_bookmark所有记录
            
    /// </summary>
            
    /// <returns>数据集</returns>
            public BookMarkEntityCollection GetPagedBookMark(UserEntity userEntity, int startIndex, int endindex)
            {
                BookMarkEntityCollection list 
    = new BookMarkEntityCollection();

                 SqlParameter[] _param 
    ={            
                 
    new SqlParameter("@startIndex", startIndex),
                
    new SqlParameter("@endIndex", endindex)
                                        };
                
    using (SqlDataReader dr = SqlHelper.ExecuteReader(SysConfig.ConnectionString,CommandType.StoredProcedure, "pfav_GetPagedbookmark",_param))
                {
                    BookMarkEntity obj 
    = new BookMarkEntity();
                    MPortal.Utility.ReflectionEntity.ReaderToObjects
    <BookMarkEntity>(dr, list);               
                }
                
    return list;
            }
  • 相关阅读:
    java中的Class类
    装机
    CSS入门
    初级HTML
    IO加强
    Lambda表达式
    IOStream-基础
    JavaSE阶段基础内容(不包括I/O,常用类,集合)
    markdown学习
    Log4j配置详解
  • 原文地址:https://www.cnblogs.com/mmmhhhlll/p/1291300.html
Copyright © 2011-2022 走看看