美文网首页
Datatable转为List / DataRow转为实体

Datatable转为List / DataRow转为实体

作者: NewForMe | 来源:发表于2021-01-11 09:32 被阅读0次

    '''

    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
    

    '''

    相关文章

      网友评论

          本文标题:Datatable转为List / DataRow转为实体

          本文链接:https://www.haomeiwen.com/subject/cozfoktx.html