zoukankan      html  css  js  c++  java
  • DataSet转化为实体集合类

     1 /// <summary>
     2         /// DataSet转换为实体类
     3         /// </summary>
     4         /// <typeparam name="T">实体类</typeparam>
     5         /// <param name="p_DataSet">DataSet</param>
     6         /// <param name="p_TableIndex">待转换数据表索引</param>
     7         /// <returns>实体类</returns>
     8         public static T DataSetToEntity<T>(DataSet p_DataSet, int p_TableIndex)
     9         {
    10             if (p_DataSet == null || p_DataSet.Tables.Count < 0)
    11                 return default(T);
    12             if (p_TableIndex > p_DataSet.Tables.Count - 1)
    13                 return default(T);
    14             if (p_TableIndex < 0)
    15                 p_TableIndex = 0;
    16             if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0)
    17                 return default(T);
    18 
    19             DataRow p_Data = p_DataSet.Tables[p_TableIndex].Rows[0];
    20             // 返回值初始化
    21             T _t = (T)Activator.CreateInstance(typeof(T));
    22             PropertyInfo[] propertys = _t.GetType().GetProperties();
    23             foreach (PropertyInfo pi in propertys)
    24             {
    25                 if (p_DataSet.Tables[p_TableIndex].Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data[pi.Name.ToUpper()] != DBNull.Value)
    26                 {
    27                     pi.SetValue(_t, p_Data[pi.Name.ToUpper()], null);
    28                 }
    29                 else
    30                 {
    31                     pi.SetValue(_t, null, null);
    32                 }
    33             }
    34             return _t;
    35         }
    36 
    37         /// <summary>
    38         /// DataSet转换为实体列表
    39         /// </summary>
    40         /// <typeparam name="T">实体类</typeparam>
    41         /// <param name="p_DataSet">DataSet</param>
    42         /// <param name="p_TableIndex">待转换数据表索引</param>
    43         /// <returns>实体类列表</returns>
    44         public static IList<T> DataSetToEntityList<T>(DataSet p_DataSet, int p_TableIndex)
    45         {
    46             if (p_DataSet == null || p_DataSet.Tables.Count < 0)
    47                 return default(IList<T>);
    48             if (p_TableIndex > p_DataSet.Tables.Count - 1)
    49                 return default(IList<T>);
    50             if (p_TableIndex < 0)
    51                 p_TableIndex = 0;
    52             if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0)
    53                 return default(IList<T>);
    54 
    55             DataTable p_Data = p_DataSet.Tables[p_TableIndex];
    56             // 返回值初始化
    57             IList<T> result = new List<T>();
    58             for (int j = 0; j < p_Data.Rows.Count; j++)
    59             {
    60                 T _t = (T)Activator.CreateInstance(typeof(T));
    61                 PropertyInfo[] propertys = _t.GetType().GetProperties();
    62                 foreach (PropertyInfo pi in propertys)
    63                 {
    64                     if (p_Data.Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data.Rows[j][pi.Name.ToUpper()] != DBNull.Value)
    65                     {
    66                         pi.SetValue(_t, p_Data.Rows[j][pi.Name.ToUpper()], null);
    67                     }
    68                     else
    69                     {
    70                         pi.SetValue(_t, null, null);
    71                     }
    72                 }
    73                 result.Add(_t);
    74             }
    75             return result;
    76         }
  • 相关阅读:
    谈谈vertical-align的text-bottom和text-top
    【golang】代码学习
    【golang】json相关:unmarshal
    【tidb】相关的调研
    【php】sort函数整理
    【hive学习笔记1】-开始
    python2和python3区别
    python: 类型转换(int,long,float->string)
    【java】查找应用程序的资源
    【java】已经学习的部分
  • 原文地址:https://www.cnblogs.com/ezplusy/p/4054861.html
Copyright © 2011-2022 走看看