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;
            }

  • 相关阅读:
    React生命周期及事件详解
    系统重装后常见的环境变量配置
    Java 字符串格式化
    React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发
    java-json与js-json转化
    RN项目中缩进处理
    React Native 常用学习链接地址
    React-Native 常用组件学习资料链接
    Swift-继承、构造器、类型转换(嵌套)、类扩展、泛型、协议
    CallKit详解(来电提醒+骚扰拦截)
  • 原文地址:https://www.cnblogs.com/pzxnet/p/12148753.html
Copyright © 2011-2022 走看看