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         }
  • 相关阅读:
    Python中正则表达式的巧妙使用
    Django的ORM常用查询操作总结(Django编程-3)
    Django的datetime.timedelta类(Django编程-2)
    Python面向对象静态方法,类方法,属性方法
    Python常用的内置函数
    InnoDB和MyISAM的区别
    python中字典和json的区别
    分布式代码管理系统GIT
    安装php扩展 ffmpeg-php
    把文件每隔三行合并成一行(awk之RS、ORS与FS、OFS)
  • 原文地址:https://www.cnblogs.com/ezplusy/p/4054861.html
Copyright © 2011-2022 走看看