C#将数据表转换为列表;Tgt
使用三层架构开发网站时,我想把DataTable对象转换成ListT对象,于是在网上查找资料,总结出一种方便的方法,实现——用法的反映。
思考:
初始化一个ListT对象获取t的所有属性,初始化一个t对象遍历所有属性,如果DataTable包含对应的属性值,则为t对象赋值,如果没有对应的列,则检查数据模型是否定义不正确(与列名相比,属性名不区分大小写),将t对象添加到ListT对象中
整体代码:
反映获取的属性信息
将DataTable中的列信息与上图进行对比,可以发现属性的前几个字母都是大写的,而列名是用Camel命名的,前几个字母都是小写的。但是,通过单步调试,我们可以发现dt的返回值。Contanis(tempName)为真,证明这个比较不区分大小写。
获取测试对象信息
///summary ///通过反射将DataTable转换为ListT对象///summary///param name=' dt ' DataTable对象/param///Returns list集合/Returns public static ListT DataTable lit(datatabledt)其中t:类,new(){//定义了set lists=new ListT();//定义一个临时变量字符串tempName=string。空的;//遍历所有数据行foreach(dt . rows中的datarow dr){ t t=new t();//获取公共属性property info[]properties=t . gettype()。此模型的get properties();//遍历对象foreach(properties中的property info pi){ tempname=pi . name;//将属性名赋给临时变量//检查DataTable是否包含此列(列名==对象的属性名)if (dt。columns . contains(tempName)){//value object value=dr[tempName];//如果不为空,属性If(值!=DBNull。值){ pi。SetValue(t,Value,null);} } }//通用集合ts.add的对象;}返回ts;}
版权声明:C#将数据表转换为列表;Tgt是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。