zoukankan      html  css  js  c++  java
  • C#对象、List<>转DataTable

     public static DataTable ObjectToTable(object obj)
            {
                try {
                    Type t;
                    if (obj.GetType().IsGenericType)
                    {
                        t = obj.GetType().GetGenericTypeDefinition();
                    }
                    else
                    {
                        t = obj.GetType();
                    }
                    if(t== typeof(List<>)||
                        t==typeof(IEnumerable<>))
                    {
                        DataTable dt = new DataTable();
                        IEnumerable<object>  lstenum=obj as IEnumerable<object>;
                        if(lstenum.Count()>0)
                        {
                            var ob1 = lstenum.GetEnumerator();
                            ob1.MoveNext();
                            foreach (var item in ob1.Current.GetType().GetProperties())
                            {
                                dt.Columns.Add(new DataColumn() { ColumnName = item.Name });
                            }
                            //数据
                            foreach (var item in lstenum)
                            {
                                DataRow row = dt.NewRow();
                                foreach (var sub in item.GetType().GetProperties())
                                {
                                    row[sub.Name] = sub.GetValue(item, null);
                                }
                                dt.Rows.Add(row);
                            }
                            return dt;
                        }
                    }
                    else if (t == typeof(DataTable))
                    {
                        return (DataTable)obj;
                    }
                    else   //(t==typeof(Object))
                    {
                        DataTable dt = new DataTable();
                        foreach (var item in obj.GetType().GetProperties())
                        {
                            dt.Columns.Add(new DataColumn() { ColumnName=item.Name });                       
                        }
                        DataRow row= dt.NewRow();
                        foreach (var item in obj.GetType().GetProperties())
                        {
                            row[item.Name] = item.GetValue(obj, null);
                        }                    
                        dt.Rows.Add(row);
                        return dt;
                    }
                     
                }catch(Exception ex)
                {               
                }
                return null;
            }

  • 相关阅读:
    Jmeter录制数据库脚本
    Jmeter代理方式录制并进行关联
    Jmeter基础知识
    总结Java各种API文档,提供下载.chm文件,HTML、java、w3school、servlet、js、spring、等等
    个人期末总结
    《软件工程导论》—领骑衫获奖感言
    201571030108/201571030112《小学四则运算练习软件软件需求说明》结对项目报告
    小学四则运算练习软件软件需求说明
    201571030108/201571030112《小学四则运算练习软件》结对项目报告
    小学生四则运算练习软件项目报告
  • 原文地址:https://www.cnblogs.com/pzxnet/p/12148753.html
Copyright © 2011-2022 走看看