日期:2014-05-20  浏览次数:20715 次

第一次用linq,请教怎么把结果转化为datatable?
本帖最后由 rainxies 于 2012-11-08 21:03:00 编辑 我看到单独查一个table是可以的:

IEnumerable<DataRow> query =
                from order in orders.AsEnumerable()
                where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
                select order;

            DataTable boundTable = query.CopyToDataTable<DataRow>();

但如果用到join,示例是这样:

var query =
                from order in orders.AsEnumerable()
                join detail in details.AsEnumerable()
                on order.Field<int>("SalesOrderID") equals
                    detail.Field<int>("SalesOrderID")
                where order.Field<bool>("OnlineOrderFlag") == true
                && order.Field<DateTime>("OrderDate").Month == 8
                select new
                {
                    SalesOrderID =
                        order.Field<int>("SalesOrderID"),
                    SalesOrderDetailID =
                        detail.Field<int>("SalesOrderDetailID"),
                    OrderDate =
                        order.Field<DateTime>("OrderDate"),
                    ProductID =
                        detail.Field<int>("ProductID")
                };

请教各位老大,怎么把上面这个query转化为datatable呢?
它没有“CopyToDataTable”方法

------最佳解决方案--------------------
你可以这样来实现:

http://blog.csdn.net/q107770540/article/details/6556210
------其他解决方案--------------------
直接tolist 不行么?为什么一定要table
------其他解决方案--------------------