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;
            }
  • 相关阅读:
    ArcGIS API中FindTask中文搜索无效,服务器编码问题URIEncoding="utf-8"
    ArcGIS10.1 api for Flex开发用于ArcGIS 9.3时QueryTask 'Error #2032'错误的解决方案
    Arcgis API For IOS扩展AGSDynamicLayer新旧版API对比
    谈FME批量自动化数据转换方法
    浅谈城市规划在移动GIS方面的应用发展
    JS-JQuery(JSONP)调用WebService跨域若干技术点
    CAD规划成果入库GIS_SDE转换之分析
    Web前台直接加载GIS格式数据分析
    [转] 基于ArcGISServer实现活动地图标注
    程序员如何利用空闲时间挣零花钱
  • 原文地址:https://www.cnblogs.com/mmmhhhlll/p/1291300.html
Copyright © 2011-2022 走看看