2012-10-13 25 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")));