zoukankan      html  css  js  c++  java
  • 将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();

  • 相关阅读:
    成为一个会思考的学习者
    我的第4篇博客
    我的第3篇博客
    第2次作业
    第一次作业:大学,人生的另一个新的开始
    第四次作业
    第三次作业
    第二次作业
    作为大一新生的感悟
    第四次作业
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/1780213.html
Copyright © 2011-2022 走看看