簡體   English   中英

轉換 IEnumerable<DataRow> 到 EnumerableRowCollection<DataRow> 或數據視圖

[英]Convert IEnumerable<DataRow> to EnumerableRowCollection<DataRow> or DataView

我怎么能resultEnumerableRowCollection<DataRow>DataView

DataTable table1 = /*something*/ ;
DataTable table2 = /*something*/ ;
DataTable table3 = /*something*/ ;

IEnumerable<DataRow> result = (from t1 in table1.AsEnumerable() join 
                                    t2 in table2.AsEnumerable() on t1.Field<int>("id") equals t2.Field<int>("t1id") join
                                    t3 in table3.AsEnumerable() on t2.Field<int>("t3id") equals t3.Field<int>("id")
                               where 666.Equals(t3.Field<int>("id"))
                              select t1);

謝謝

正如喬恩·斯基特所說:

DataTable table1 = /*something*/ ;
DataTable table2 = /*something*/ ;
DataTable table3 = /*something*/ ;

DataTable result = (from t1 in table1.AsEnumerable() join 
                                    t2 in table2.AsEnumerable() on t1.Field<int>("id") equals t2.Field<int>("t1id") join
                                    t3 in table3.AsEnumerable() on t2.Field<int>("t3id") equals t3.Field<int>("id")
                               where 666.Equals(t3.Field<int>("id"))
                              select t1).CopyToDataTable<DataRow>();

如果你想要一個數據視圖:

DataTable table1 = /*something*/ ;
DataTable table2 = /*something*/ ;
DataTable table3 = /*something*/ ;

DataView result = (from t1 in table1.AsEnumerable() join 
                                    t2 in table2.AsEnumerable() on t1.Field<int>("id") equals t2.Field<int>("t1id") join
                                    t3 in table3.AsEnumerable() on t2.Field<int>("t3id") equals t3.Field<int>("id")
                               where 666.Equals(t3.Field<int>("id"))
                              select t1).CopyToDataTable<DataRow>().AsDataView();

從 .NET 文檔這里

DataTable orders = dataSet.Tables["SalesOrderHeader"];

EnumerableRowCollection<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<bool>("OnlineOrderFlag") == true
    orderby order.Field<decimal>("TotalDue")
    select order;

DataView view = query.AsDataView();

bindingSource1.DataSource = view;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM