数码资讯
C变换成#DataTable列表
当使用三层架构开发一个网站,我们希望将DataTable对象为对象,所以我们可以在网上找到的资料,总结出一种方便的方式来实现,使用反射。 思想: 初始化列表对象属性初始化所有T,T的所有属性的对象的遍历,如果有DataTable属性对象分配在相应的值,如果没有相应的列检查数据模型定义错误(属性名和名
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
当使用三层架构开发一个网站,我们希望将DataTable对象为对象,所以我们可以在网上找到的资料,总结出一种方便的方式来实现,使用反射。
思想:
初始化列表对象属性初始化所有T,T的所有属性的对象的遍历,如果有DataTable属性对象分配在相应的值,如果没有相应的列检查数据模型定义错误(属性名和名称不区分大小写)添加对象到对象的列表
整体的代码:
反射获得的属性信息
在DataTable比较上面的柱的信息,我们会发现,属性第一个字母大写,并叫骆驼的名字,第一个字母是小写的,但通过调试步骤中可以找到dt.columns.contanis(tempname)返回true,则可证明这是区分大小写的比较
访问T对象信息
X
只使用反射将DataTable的名单
X
公共对象DataTable
公共列表集合
公共静态列表datatabletolist(DataTable dt)T:类,新()
{
定义。
列出新列表();
定义临时变量
tempname =空字符串的字符串;
/ / DataTable遍历所有数据
foreach(DataRow DR在DT。行)
{
T =新T();
在这个模型中获得公共属性。
{ } = t.gettype PropertyInfo性质()GetProperties();
遍历对象的所有属性
foreach(PropertyInfo PI特性)
{
tempname =π的名字; / /属性名称分配给一个临时变量
检查该列是否包含 / / DataTable(属性名称的列名称=对象)
如果(dt.columns.contains(tempname))
{
值
目标值=博士tempname } {;
如果非空,则分配给对象属性。
如果(值)!= DBNull。值)
{
Pi.SetValue(T值,null);
}
}
}
将对象添加到泛型集合中
Ts. Add(T);
}
返回TS;
}
思想:
初始化列表对象属性初始化所有T,T的所有属性的对象的遍历,如果有DataTable属性对象分配在相应的值,如果没有相应的列检查数据模型定义错误(属性名和名称不区分大小写)添加对象到对象的列表
整体的代码:
反射获得的属性信息
在DataTable比较上面的柱的信息,我们会发现,属性第一个字母大写,并叫骆驼的名字,第一个字母是小写的,但通过调试步骤中可以找到dt.columns.contanis(tempname)返回true,则可证明这是区分大小写的比较
访问T对象信息
X
只使用反射将DataTable的名单
X
公共对象DataTable
公共列表集合
公共静态列表datatabletolist(DataTable dt)T:类,新()
{
定义。
列出新列表();
定义临时变量
tempname =空字符串的字符串;
/ / DataTable遍历所有数据
foreach(DataRow DR在DT。行)
{
T =新T();
在这个模型中获得公共属性。
{ } = t.gettype PropertyInfo性质()GetProperties();
遍历对象的所有属性
foreach(PropertyInfo PI特性)
{
tempname =π的名字; / /属性名称分配给一个临时变量
检查该列是否包含 / / DataTable(属性名称的列名称=对象)
如果(dt.columns.contains(tempname))
{
值
目标值=博士tempname } {;
如果非空,则分配给对象属性。
如果(值)!= DBNull。值)
{
Pi.SetValue(T值,null);
}
}
}
将对象添加到泛型集合中
Ts. Add(T);
}
返回TS;
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。