/// <summary>/// DataTable轉List<Model>通用類【實體轉換輔助類】/// </summary>public class ModelConvertHelper<T> where T : new(){public static IList<T> ConvertToModel(DataTable dt){// 定義集合IList<T> ts = new List<T>();// 獲得此模型的類型Type type = typeof(T);string tempName = "";foreach (DataRow dr in dt.Rows){T t = new T();// 獲得此模型的公共屬性PRopertyInfo[] propertys = t.GetType().GetProperties();foreach (PropertyInfo pi in propertys){tempName = pi.Name; // 檢查DataTable是否包含此列if (dt.Columns.Contains(tempName)){// 判斷此屬性是否有Setif (!pi.CanWrite) continue;object value = dr[tempName];if (value != DBNull.Value)pi.SetValue(t, value, null);}}ts.Add(t);}return ts;}}
// 把DataTable轉換為IList<View_TableListModel> IList<View_TableListModel> vlistTable = ModelConvertHelper<View_TableListModel>.ConvertToModel(dtTable);
新聞熱點
疑難解答