using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace cfzs.DAL{public class BaseDAL{#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转为ListT / DataRow转为实体类对象》对你有帮助,请点赞、收藏,并留下你的观点哦!