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;
            }
  • 相关阅读:
    WordPress Export To Text插件‘download’参数远程文件包含漏洞
    WordPress EELV Newsletter插件跨站脚本漏洞
    WordPress Exploit Scanner插件安全绕过漏洞
    WordPress Feedweb插件跨站脚本漏洞
    WordPress User Role Editor插件跨站请求伪造漏洞
    Apache Struts ‘includeParams’安全绕过漏洞
    Linux Kernel ‘tcp_collapse()’ 本地拒绝服务漏洞
    Linux Kernel "iscsi_add_notunderstood_response()"缓冲区溢出漏洞
    开始读《Agile Web Development with Rails》
    开始使用2个显示器
  • 原文地址:https://www.cnblogs.com/mmmhhhlll/p/1291300.html
Copyright © 2011-2022 走看看