zoukankan      html  css  js  c++  java
  • datatable转list

    public static List<T> TableToList<T>(DataTable dt, bool isStoreDB = true)
    {
    List<T> list = new List<T>();
    Type type = typeof(T);
    //List<string> listColums = new List<string>();
    PropertyInfo[] pArray = type.GetProperties(); //集合属性数组
    foreach (DataRow row in dt.Rows)
    {
    T entity = Activator.CreateInstance<T>(); //新建对象实例
    foreach (PropertyInfo p in pArray)
    {
    if (!dt.Columns.Contains(p.Name) || row[p.Name] == null || row[p.Name] == DBNull.Value)
    {
    continue; //DataTable列中不存在集合属性或者字段内容为空则,跳出循环,进行下个循环
    }
    if (isStoreDB && p.PropertyType == typeof(DateTime) && Convert.ToDateTime(row[p.Name]) < Convert.ToDateTime("1753-01-01"))
    {
    continue;
    }
    try
    {
    if (p.PropertyType == typeof(Nullable<decimal>))
    {
    var obj = Convert.ToDecimal(row[p.Name]);//类型强转,将table字段类型转为集合字段类型
    p.SetValue(entity, obj, null);
    }
    else
    {
    var obj = Convert.ChangeType(row[p.Name], p.PropertyType);//类型强转,将table字段类型转为集合字段类型
    p.SetValue(entity, obj, null);
    }

    }
    catch (Exception e)
    {
    //throw e;
    }

    }
    list.Add(entity);
    }
    return list;
    }

  • 相关阅读:
    hust 1605 bfs
    hdu 1512
    2013 ACMICPC 杭州现场赛 I题
    2013年 ACMICPC 杭州赛区H题
    hdu 3717 二分+队列维护
    hdu 2993 斜率dp
    hdu 3480 斜率dp
    hdu 3507 斜率dp
    hdu 2829 斜率DP
    零碎笔记
  • 原文地址:https://www.cnblogs.com/workstation-nigoudongma/p/9668452.html
Copyright © 2011-2022 走看看