#region datatable转换成实体类 /// <summary> /// 填充对象列表:用dataset的第一个表填充实体类 /// </summary> /// <param name="ds">dataset</param> /// <returns></returns> public list<t> fillmodel(dataset ds) { if (ds == null || ds.tables[0] == null || ds.tables[0].rows.count == 0) { return null; } else { return fillmodel(ds.tables[0]); } } /// <summary> /// 填充对象列表:用dataset的第index个表填充实体类 /// </summary> public list<t> fillmodel(dataset ds, int index) { if (ds == null || ds.tables.count <= index || ds.tables[index].rows.count == 0) { return null; } else { return fillmodel(ds.tables[index]); } } /// <summary> /// 填充对象列表:用datatable填充实体类 /// </summary> public list<t> fillmodel(datatable dt) { if (dt == null || dt.rows.count == 0) { return null; } list<t> modellist = new list<t>(); foreach (datarow dr in dt.rows) { //t model = (t)activator.createinstance(typeof(t)); t model = new t(); for (int i = 0; i < dr.table.columns.count; i++) { propertyinfo propertyinfo = model.gettype().getproperty(dr.table.columns[i].columnname); if (propertyinfo != null && dr[i] != dbnull.value) propertyinfo.setvalue(model, dr[i], null); } modellist.add(model); } return modellist; } /// <summary> /// 填充对象:用datarow填充实体类 /// </summary> public t fillmodel(datarow dr) { if (dr == null) { return default(t); } //t model = (t)activator.createinstance(typeof(t)); t model = new t(); for (int i = 0; i < dr.table.columns.count; i++) { propertyinfo propertyinfo = model.gettype().getproperty(dr.table.columns[i].columnname); if (propertyinfo != null && dr[i] != dbnull.value) propertyinfo.setvalue(model, dr[i], null); } return model; } #endregion #region 实体类转换成datatable /// <summary> /// 实体类转换成dataset /// </summary> /// <param name="modellist">实体类列表</param> /// <returns></returns> public dataset filldataset(list<t> modellist) { if (modellist == null || modellist.count == 0) { return null; } else { dataset ds = new dataset(); ds.tables.add(filldatatable(modellist)); return ds; } } /// <summary> /// 实体类转换成datatable /// </summary> /// <param name="modellist">实体类列表</param> /// <returns></returns> public datatable filldatatable(list<t> modellist) { if (modellist == null || modellist.count == 0) { return null; } datatable dt = createdata(modellist[0]); foreach (t model in modellist) { datarow datarow = dt.newrow(); foreach (propertyinfo propertyinfo in typeof(t).getproperties()) { datarow[propertyinfo.name] = propertyinfo.getvalue(model, null); } dt.rows.add(datarow); } return dt; } /// <summary> /// 根据实体类得到表结构 /// </summary> /// <param name="model">实体类</param> /// <returns></returns> private datatable createdata(t model) { datatable datatable = new datatable(typeof(t).name); foreach (propertyinfo propertyinfo in typeof(t).getproperties()) { datatable.columns.add(new datacolumn(propertyinfo.name, propertyinfo.propertytype)); } return datatable; } #endregion
———————
来源:csdn
原文:https://blog.csdn.net/a11112244444/article/details/78921200
版权声明:本文为博主原创文章,转载请附上博文链接!
黄山市民网:https://www.huangshanshimin.com/