• 将LINQ To DataSet 传回之对象集转成DataTable的函数


    静态方法:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Reflection;

    Public static DataTable LinqToDataTable(IEnumerable list)
    {
                DataTable table = new DataTable();
                bool schemaIsBuild = false;
                PropertyInfo[] props = null;
                foreach (object item in list)
                {
                    if (!schemaIsBuild)
                    {
                        props = item.GetType().GetProperties();
                        foreach (var pi in props)
                            table.Columns.Add(new DataColumn(pi.Name, pi.PropertyType));
                        schemaIsBuild = true;
                    }
                    var row = table.NewRow();
                    foreach (var pi in props)
                        row[pi.Name] = pi.GetValue(item, null);
                    table.Rows.Add(row);
                }
                table.AcceptChanges();
                return table;
    }

    调用:

    var table = LinqToDataTable(
                     from s1 in ds.Tables["Customers"].AsEnumerable()
                     join s2 in ds.Tables["Orders"].AsEnumerable() on s1["CustomerID"] equals s2["CustomerID"]
                     where s2.Field<DateTime>("OrderDate") > DateTime.Parse("1997/1/1") &&
                     s2.Field<DateTime>("OrderDate") < DateTime.Parse("1997/5/31")
                     select new
                    {
                    OrderID = s2.Field<int>("OrderID"),
                    CustomerName = s1.Field<string>("CompanyName"),
                    OrderDate = s2.Field<DateTime>("OrderDate")
              });
    foreach (DataRow item in table.Rows)
         Console.WriteLine(item["CustomerName"]);
    Console.ReadLine();

  • 相关阅读:
    高斯函数 and 对数高斯函数 拟合曲线
    Python3.6、3.7、3.8新特性
    常用限流策略——漏桶与令牌桶介绍
    常用的HTTP服务压测工具介绍
    使用swagger生成接口文档
    validator库参数校验若干实用技巧
    树形结构数据处理
    element-ui 抽屉组件(el-drawer ) 二次封装 增加resize拖曳改变宽度大小
    pm2常用命令
    vue3-- setup中获取数组dom
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/1780213.html
Copyright © 2020-2023  润新知