[转]利用.NET中的反射机制实现IList到DataTable的转换

 public static DataSet ListToDataSet(IList ResList)
 {
      DataSet RDS=new DataSet();
      DataTable TempDT = new DataTable();
      //此处遍历IList的结构并建立同样的DataTable
      System.Reflection.PropertyInfo[] p = ResList[0].GetType().GetProperties();
      foreach (System.Reflection.PropertyInfo pi in p)
      {
           TempDT.Columns.Add(pi.Name,System.Type.GetType(pi.PropertyType.ToString()));
      }
      for (int i = 0; i < ResList.Count; i++){
           IList TempList = new ArrayList();
           //将IList中的一条记录写入ArrayList
           foreach (System.Reflection.PropertyInfo pi in p)
           {
                object o = pi.GetValue(ResList[i], null);
                TempList.Add(o);
           }
           object[] itm=new object[p.Length];
           //遍历ArrayList向object[]里放数据
           for (int j = 0; j < TempList.Count; j++)
           {
                itm.SetValue(TempList[j], j);
           }
           //将object[]的内容放入DataTable
           TempDT.LoadDataRow(itm, true);
      }
      //将DateTable放入DataSet
      RDS.Tables.Add(TempDT);
      //返回DataSet
      return RDS;
 }

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试