POOPE 发表于 2021-7-31 15:52:54

IList转化为Dataset C#

概述:
在用Nhibernate查询所返回的数据为IList,而我们经常需要的却是DataSet,所以很有必要这么一个方法.
代码:
/**/
      /// <summary>
      /// 实现对IList到DataSet的转换   
      /// </summary>
      /// <param name="list">待转换的IList</param>
      /// <returns>转换后的DataSet</returns>
      public static DataSet ListToDataSet(IList list)
      {
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();

            //此处遍历IList的结构并建立同样的DataTable   
            System.Reflection.PropertyInfo[] p = list.GetType().GetProperties();
            foreach (System.Reflection.PropertyInfo pi in p)
            {
                dt.Columns.Add(pi.Name, System.Type.GetType(pi.PropertyType.ToString()));
            }

            for (int i = 0; i < list.Count; i++)
            {
                ArrayList arrayList = new ArrayList();
                //将IList中的一条记录写入ArrayList   
                foreach (System.Reflection.PropertyInfo pi in p)
                {
                  object obj = pi.GetValue(list, null);
                  arrayList.Add(obj);
                }

                object[] item = new object;
                //遍历ArrayList向object[]里放数据   
                for (int j = 0; j < arrayList.Count; j++)
                {
                  item.SetValue(arrayList, j);
                }
                //将object[]的内容放入DataTable   
                dt.LoadDataRow(item, true);
            }
            //将DateTable放入DataSet   
            ds.Tables.Add(dt);

            //返回DataSet   
            return ds;
      }   
文档来源:51CTO技术博客https://blog.51cto.com/u_6555766/3240802
页: [1]
查看完整版本: IList转化为Dataset C#