zoukankan      html  css  js  c++  java
  • IEnumerable和 IQueryable 转化为DataTable

     

    扩展方法:
    public static DataTable ConvertToDataTable(this IEnumerable enumerable)
    {
        var dataTable = new DataTable();
        foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T))) {
               dataTable.Columns.Add(pd.Name, pd.PropertyType);
        }
        foreach (T item in enumerable) {
               var Row = dataTable.NewRow();
                   
           foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))  {
                     Row[pd.Name] = pd.GetValue(item);
           }
        dataTable.Rows.Add(Row);
       }
       return dataTable;

    }

    传统写法:
    DataTable table = new DataTable();
    table.Columns.Add("UserID", typeof (long));
    table.Columns.Add("UserName", typeof (string));

    IEnumerable<T> database = //获取数据源;
        foreach (T info in database) {
            DataRow row = dt.NewRow();
            row["ID"] = database.ID;
            row["Name"] = database.Name;
            table.Rows.Add(row);
         }
    }
    return table;

  • 相关阅读:
    C++中的类模板详细讲述
    函数模板和模板函数
    vs2008 快捷键大全
    #宏定义##
    多工程项目设置
    conemu 配置
    itcast-svn
    itcast-spring-三大框架整合
    Spring通知方法错误
    动态代理
  • 原文地址:https://www.cnblogs.com/xffy1028/p/2344329.html
Copyright © 2011-2022 走看看