首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

反射取值有关问题,三百里加急

2012-01-15 
反射取值问题,三百里加急!!!写了一个方法:用实体类obEntity的属性值赋给DataRow相同名字的行字段,但是出错

反射取值问题,三百里加急!!!
写了一个方法:

用实体类obEntity的属性值赋给DataRow相同名字的行字段,但是出错,知道错出在哪里,但是不知道怎么改过来(刚开始学反射),哪位帮忙看看,改一改,深更半夜继续等...
不甚感激,临表涕零~~~~

  public static DataRow fillDataRowWithEntity(DataRow dr, Object obEntity)
  {
  DataTable dt = dr.Table;
  Type tpEntity = obEntity.GetType();
  System.Reflection.PropertyInfo[] pis = tpEntity.GetProperties();
  foreach (DataColumn dc in dt.Columns)
  {
  foreach (System.Reflection.PropertyInfo pi in pis)
  {
  if (dc.ColumnName == pi.Name && (dc.DataType.Name == pi.PropertyType.Name))
  {
  dr[dc.ColumnName] = pi.GetValue(tpEntity, null); //该行出错,提示
  }
  }
  }
  return dr;
  }

[解决办法]
是不是DataRow里字段类型和属性的数据类型不一致啊
[解决办法]
pi.GetValue(obEntity, null)
应该是这样的 刚才没注意看
[解决办法]
pi.GetValue(obEntity, null) 
这里得到的是什么啊?
 dr[dc.ColumnName] 能是一样的类型吗?
好好设置断点调试一下

热点排行