为什么用DataTable ?
现在的问题不是为什么用datatable ,而且如何实现这种操作方式。
@梁子se7en:
DataTable dt =new DataTable(); DataColumn ID = new DataColumn("ID"); ID.DataType = System.Type.GetType("System.String"); dt.Columns.Add(ID); foreach(Model m in list<Model>) { DataRow dr=new DataRow(m); dt.Rows().Add(dr); }
以上代码 无测试 只给你提供思路
@zhibudao: 谢谢 。我明白你代码的意思 。可能是我没有说清楚 ,我的列都是未知动态的 ,所以我想要实现的是动态的根据list去添加到datatable中 。
@梁子se7en: 列名随便起 也可以动态的
反射获取model的property,然后用于建column。再遍历list,将数据添加到DataTable
反射?这种需求感觉就是想实现“程序完全自动化”这类的东西,没多大用处,还是自己多设计、重构程序比较好。
上代码
private DataTable ListConvertDataTableCommon<T>(List<T> list) { DataTable dt = new DataTable(); PropertyInfo[] propertyInfos = typeof(T).GetProperties(); foreach (var item in propertyInfos) { dt.Columns.Add(item.Name); } try { T model; if (list!=null || list.Count>0) { for (int i = 0; i < list.Count; i++) { model = list[i]; DataRow dr = dt.NewRow(); foreach (var item in propertyInfos) { dr[item.Name] = item.GetValue(model,null); } dt.Rows.Add(dr); } } } catch (Exception e) { throw new Exception("意外错误"); } return dt; }
其实楼主意思就是 把 list<model> 转换成DataTABLE……