热门IT资讯网

C# 反射实现IList 到DataSet的转换

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,using System;using System.Collections.Generic; using System.Text; using System.Data; using System.Co

using System;

using System.Collections.Generic; using System.Text; using System.Data; using System.Collections; using System.Reflection; namespace KycBaseModule { public class KycFunction { public KycFunction() { } /// /// 实现对IList到DataSet的转换 /// /// 待转换的IList /// 转换后的DataSet 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 oo = pi.GetValue(ResList[i], null); TempList.Add(oo); } 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; } } }
0