Datatable转为List / DataRow转为实体

2021-01-11  本文已影响0人  NewForMe

'''

region DataTale转为实体列表

    /// <summary>
    /// DataTale转为实体列表
    /// </summary>
    /// <typeparam name="T">实体类类型</typeparam>
    /// <param name="table">DataTable</param>
    /// <returns>List<T></returns>
    public List<T> DataTableToModelList<T>(DataTable table)
    {
        List<T> list = new List<T>();
        T t = default(T);
        PropertyInfo[] propertypes = null;
        string tempName = string.Empty;
        foreach (DataRow row in table.Rows)
        {
            t = Activator.CreateInstance<T>();
            propertypes = t.GetType().GetProperties();
            foreach (PropertyInfo pro in propertypes)
            {
                tempName = pro.Name;
                if (table.Columns.Contains(tempName))
                {
                    object value = row[tempName];
                    if (value.GetType() == typeof(System.DBNull))
                    {
                        value = null;
                    }
                    pro.SetValue(t, value, null);
                }
            }
            list.Add(t);
        }
        return list;
    }
    #endregion
    #region   DataRow转为实体类
    /// <summary>
    /// DataRow转为实体类
    /// </summary>
    /// <typeparam name="T">实体类类型</typeparam>
    /// <param name="row">DataRow</param>
    /// <returns>T</returns>
    public T DataRowToModel<T>(DataRow row)
    {

        T t = default(T);
        PropertyInfo[] propertypes = null;
        string tempName = string.Empty;
        t = Activator.CreateInstance<T>();
        propertypes = t.GetType().GetProperties();
        foreach (PropertyInfo pro in propertypes)
        {
            tempName = pro.Name;
            if (row.Table.Columns.Contains(tempName))
            {
                object value = row[tempName];
                if (value.GetType() == typeof(System.DBNull))
                {
                    value = null;
                }
                pro.SetValue(t, value, null);
            }
        }
        return t;
    }
    #endregion

'''

上一篇下一篇

猜你喜欢

热点阅读