[英]How to convert result of linq query on two datatable into final datatable in c# winforms
我有兩個數據表,一個存儲有關某些事件詳細信息的信息,另一個存儲有關用戶信息的詳細信息。 這兩個表是:-
現在,當我應用linq查詢以使用ack_by等於user_id左連接我的事件詳細信息表和用戶詳細信息表時,便可以正確執行linq查詢,但是現在我想將linq查詢結果轉換回另一個數據表,該如何執行。
我的linq查詢代碼是這樣的:-
DataTable recordsDetails = (DataTable)(arrayList)[0];
DataTable userDetailsTable = (DataTable)(arrayList)[2];
var query = (from dt1row in recordsDetails.AsEnumerable()
join dt2row in userDetailsTable.AsEnumerable() on dt1row.Field<int>("ack_by") equals dt2row.Field<int>("user_id")
select new
{
event_name = dt1row.Field<string>("event_name"),
event_id = dt1row.Field<int>("event_id"),
event_severity = dt1row.Field<int>("event_severity"),
event_time = dt1row.Field<DateTime>("event_time"),
ack_by = dt1row.Field<int>("ack_by"),
ack_time = dt1row.Field<DateTime>("ack_time"),
zone_id = dt1row.Field<string>("zone_id"),
camera_id = dt1row.Field<int>("camera_id"),
camera_name = dt1row.Field<string>("camera_name"),
user_name = dt2row.Field<string>("username")
});
我的問題很簡單,即如何將linq操作的結果返回到另一個數據表中。 謝謝!
IEnumerable<DataRow> query = (from dt1row in recordsDetails.AsEnumerable()
join dt2row in userDetailsTable.AsEnumerable() on dt1row.Field<int>("ack_by") equals dt2row.Field<int>("user_id")
select new
{
event_name = dt1row.Field<string>("event_name"),
event_id = dt1row.Field<int>("event_id"),
event_severity = dt1row.Field<int>("event_severity"),
event_time = dt1row.Field<DateTime>("event_time"),
ack_by = dt1row.Field<int>("ack_by"),
ack_time = dt1row.Field<DateTime>("ack_time"),
zone_id = dt1row.Field<string>("zone_id"),
camera_id = dt1row.Field<int>("camera_id"),
camera_name = dt1row.Field<string>("camera_name"),
user_name = dt2row.Field<string>("username")
});
DataTable Table = query.CopyToDataTable<DataRow>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.