2012-10-13 66 views
3

我有這樣的代碼: -如何設置動態凡在LINQ查詢條款與C#

DataSet ds = new DataSet(); 

String s = "StudentID = 5 Or StudentID=6"; 
var result = from r in ds.table[0].AsEnumerable() where s.ToString() select r; 

如何從這個獲取數據?

+0

如果您需要LINQ而這僅僅是一個例子,那麼你應該使用動態LINQ。 –

+0

通常情況下,您可以使用許多小靜態子句的組合來完成此任務。爲什麼你需要使用動態where子句? – Enigmativity

回答

0

試試這個

var result = ds.Tables[0].AsEnumerable().Where(row => row["StudentID"].ToString() == "5" || row["StudentID"].ToString() == "6") 

var result = from r in dx.AsEnumerable() 
      where r["StudentID"].ToString() == "5" || r["StudentID"].ToString() == "6" 
      select r; 

你可以試試這個

DataTable dt = result.CopyToDataTable(); //for both code above 
+0

謝謝大家但是我想將我自己選擇的查詢發送給Linq,他會將表格數據返回給我。 ??? –

+0

@ anuj.rohila94查看我的更新 – codingbiz

2

爲什麼你不能使用的ID列表?

//assuming you have text and that's the reason 
var txtIDs = "5,6"; 
var IDs = txtIDs.Split(',').Select(s => int.Parse(s)); 

var rows = from r in ds.Tables[0].AsEnumerable() 
      where IDs.Any(id => r.Field<int>("ID")==id) 
      select r; 

或方法的語法:

var rows = ds.Tables[0].AsEnumerable() 
      .Where(r => IDs.Contains(r.Field<int>("ID")));