C# 使用where条件查询数据表

C# 使用where条件查询数据表,c#,linq,datatable,C#,Linq,Datatable,我有一个数据表,有两列 Column 1 = "EmpID" Column 2 = "EmpName" 我想根据列EmpID和 Empname 例如,我想得到其中的值 (EmpName != 'abc' or EmpName != 'xyz') and (EmpID = 5) 像这样的 var res = from row in myDTable.AsEnumerable() where row.Field<int>("EmpID") == 5 && (row.F

我有一个数据表,有两列

Column 1 = "EmpID"
Column 2 = "EmpName"
我想根据列
EmpID
Empname

例如,我想得到其中的值

(EmpName != 'abc' or EmpName != 'xyz') and (EmpID = 5)
像这样的

var res = from row in myDTable.AsEnumerable()
where row.Field<int>("EmpID") == 5 &&
(row.Field<string>("EmpName") != "abc" ||
row.Field<string>("EmpName") != "xyz")
select row;
var res=来自myDTable.AsEnumerable()中的行
其中row.Field(“EmpID”)==5&&
(行字段(“EmpName”)!=“abc”||
行字段(“EmpName”)!=“xyz”)
选择行;
另见
像这样的事情

DataTable dt = ...
DataView dv = new DataView(dt);
dv.RowFilter = "(EmpName != 'abc' or EmpName != 'xyz') and (EmpID = 5)"

这是您正在搜索的吗?

正如mamoo所示,您可以使用Linq进行搜索,但它们也很好:

var filteredDataTable = dt.Select(@"EmpId > 2
    AND (EmpName <> 'abc' OR EmpName <> 'xyz')
    AND EmpName like '%il%'" );
var filteredatatable=dt.选择(@“EmpId>2
和(EmpName'abc'或EmpName'xyz')
和EmpName,如“%il%”;

@QQping,我做不到。不知道。刚开始在DataTableMissed out中查询,如何获取返回的行数。谢谢,教授,我不能。当我将res.count转换为Int..{“指定的强制转换无效。”}{system.SystemException{system.InvalidCastException}VB ex:Dim result=From myDataTable.AsEnumerable()中的行。字段(整数的)(“myColumn1”)>0和行。字段(整数的)(“myColumn2”)>0选择行请原谅我的好奇,但是'EmpId>2'是做什么的?@AnarKhalilov这只是一些语法示例。也没有要求使用'like'。