2017-07-19 63 views
3

凡到LINQ我試圖做到這一點在C#SQL與數據表

Select a.Name,a.Param 
from Customization a 
where a.name in (select Name from Standard) 

我有嘗試這樣的事情,但它仍然無法正常工作。

merge = dt1.AsEnumerable() 
      .Where(r => r.Field<string>("Name") 
      .Contains(dt2.Rows.Contains("Name"))) 
      .CopyToDataTable(); 
+0

什麼是dt1和dt2?它們是如何構成的? –

+0

Dt1和Dt2是數據表 –

回答

3

通過使用我們需要從第二數據表(dt2)在dt1各行名單目前的方式,所以我建議你先獲取名稱的列表,然後檢查r.Field<string>("Name")是否包含在集合中。爲此,您可以使用以下代碼

var NameCollection = dt2.AsEnumerable().Select(x=> x.Field<string>("Name")).ToList(); 

merge = dt1.AsEnumerable() 
      .Where(r => NameCollection.Contains(r.Field<string>("Name"))) 
      .CopyToDataTable(); 
+0

它的工作感謝你! –

+0

@ K.S:不要忘了標記爲接受,如果它真的幫助你 –

+0

一旦接受的冷卻時間已經結束,我會接受它。再次非常感謝你! –