IList转化为Dataset C#

本文介绍了一种将Nhibernate查询返回的IList数据转换为DataSet的方法。通过该方法,可以更方便地处理和使用查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:

   在用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[0].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[i], null);
                    arrayList.Add(obj);
                }

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

            
//返回DataSet   
            return ds;
        }   

转载于:https://www.cnblogs.com/abcdwxc/archive/2009/02/19/1394076.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值