【转】反射,DataRow转换为实体类(优化)
修改为根据特性赋值,好处是数据库字段变化了,无需修改实体类属性,修改实体类属性很可能造成不必要的麻烦,所以改为用特性,特性的好处是数据库字段变化了只需要修改特性则可,不需要更改实体类属性
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
DataColumn dcName = new DataColumn("Name", typeof(string));
dt.Columns.Add(dcName);
DataRow row = dt.NewRow();
row["Name"] = "小强";
dt.Rows.Add(row);
Student s = new Student();
DataBind(s, dt.Rows[0]);
Console.WriteLine(s.StudentName);
}
static void DataBind(object entity, DataRow row)
{
Type type = entity.GetType();
PropertyInfo[] infors = type.GetProperties();
for (int i = 0; i < infors.Length; i++)
{
object[] attributes = infors[i].GetCustomAttributes(typeof(MyAttribute), false);
if (attributes.Length > 0)
{
MyAttribute attribute = attributes[0] as MyAttribute;
if (row.Table.Columns.Contains(attribute.Name))
{
object value = Convert.ChangeType(row[attribute.Name], infors[i].PropertyType);
infors[i].SetValue(entity, value, null);
}
}
}
}
}
public class Student
{
[My("Name")]
public string StudentName { get; set; }
}
[AttributeUsage(AttributeTargets.Property)]
public class MyAttribute : Attribute
{
public string Name { get; set; }
public MyAttribute(string name)
{
this.Name = name;
}
}
转载于:https://www.cnblogs.com/jansonblog/archive/2012/01/12/2320927.html
【转】反射,DataRow转换为实体类(优化)相关推荐
- javabean反射改字段内容_java反射机制给实体类相同字段自动赋值实例
一.封装一个工具类 1.简易版 package net.aexit.construct.acceptance.websky.utils; import java.lang.reflect.Field; ...
- Datatable转为ListT / DataRow转为实体类对象
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...
- 【Json转换为实体类】
在Java日常开发测试过程中可能用到需要将json格式数据转换为实体类,如果json的内容很复杂,层次结构多,手动编写成是实体类有些麻烦,IDE有插件能帮助我们: 需要安装如下两个插件 GsonFor ...
- 无法将linkedHashMap转换为实体类和feign.FeignException$NotFound错误
在用OpenFeign对其他服务进行调用时,其报错信息如下所示: 问题一 feign.FeignException$NotFound: status 404 reading IRegulation#q ...
- poi读取excel 转换实体_java解析excel数据,将excel数据转换为实体类,存入数据库...
前一段时间写了一个功能,从数据库中抽取出来的字段,写入到excel文件里:java使用poi把从数据库中取出的数据写入excel 最近实现了一个相反的功能,前台传一个excel文件,在后台解析该exc ...
- java解析excel存入map,java解析excel数据,将excel数据转换为实体类,存入数据库
前一段时间写了一个功能,从数据库中抽取出来的字段,写入到excel文件里:java使用poi把从数据库中取出的数据写入excel 最近实现了一个相反的功能,前台传一个excel文件,在后台解析该exc ...
- java日期用什么属性_java日期以及使用Java反射机制遍历实体类的属性和类型
fmt:formatDate 的输出格式 fmt关于时间格式的输出 2004-5-31 23:59:59 2004-4-1 23:59:59 JSTL标签fmt:formatDate引起的中文乱码问题 ...
- java.lang.Long cannot be cast to 转换为实体类有问题 entity.Employee
在拦截器里出现了问题
- C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务
场景 新建一个程序,需要对数据的表进行查询并将查询结果转换为实体类,然后将多个实体类 再插入到另一个数据库的表中,执行插入的过程中要使用事务. 注: 博客主页: https://blog.csdn.n ...
最新文章
- 火狐推荐几个实用的插件
- 类似QQ管家页面jquery图片显隐轮换效果
- 伯努利分布方差_统计知识(4)——分布
- java--自动装箱,拆箱
- java实现数组排序代码_Java使用选择排序法对数组排序实现代码
- java colormodel_ColorModel
- office 365将英文改为中文
- 每日一道剑指offer-两个栈来实现一个队列
- x86 vt-d在linux中的应用
- 几款pdf转换成word转换器免费版软件
- 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)
- 2021-1-30最短路入门
- PPT——————酷炫文字、人物海报
- 【Python】欧氏距离和余弦距离
- 考研热催生百亿市场,行业老兵文都教育的“冷思考” ——和大学生交朋友
- 百分点科技助力中国环境监测总站用数据底座赋能智慧监测
- 3.10矩阵与线性代数运算
- 蓝牙设备名字和地址ID如何设置
- 筛查肌肉病变,首选磁共振
- 顺丰打印电子运单报500问题解决