欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现利用泛型将DataSet转为Model的方法

程序员文章站 2023-11-20 22:19:16
本文实例讲述了c#实现利用泛型将dataset转为model的方法。分享给大家供大家参考。具体如下: 因为网站需要用c#开发,习惯了java的泛型,所以看了一下c#下,也...

本文实例讲述了c#实现利用泛型将dataset转为model的方法。分享给大家供大家参考。具体如下:

因为网站需要用c#开发,习惯了java的泛型,所以看了一下c#下,也可以这样做,随便写了一个。

public static list<t> putallval<t>(t entity, dataset ds) where t : new() {
  list<t> lists = new list<t>();
  if (ds.tables[0].rows.count > 0) {
    foreach (datarow row in ds.tables[0].rows) {
      lists.add(putval(new t(),row));
    }
  }
  return lists;
}
public static t putval<t>(t entity, datarow row) where t : new() {
  //初始化 如果为null
  if (entity == null){
    entity = new t();
  }
  //得到类型
  type type = typeof(t);
  //取得属性集合
  propertyinfo[] pi = type.getproperties();
  foreach (propertyinfo item in pi){
    //给属性赋值
    if (row[item.name] != null && row[item.name] != dbnull.value) {
      if (item.propertytype == typeof(system.nullable<system.datetime>)) {
        item.setvalue(entity, convert.todatetime(row[item.name].tostring()), null);
      } else {
        item.setvalue(entity, convert.changetype(row[item.name], item.propertytype), null);
      }
    }
  }
  return entity;
}

希望本文所述对大家的c#程序设计有所帮助。