C# 使用LIKE和/或使用LINQ和C查询数据集#

C# 使用LIKE和/或使用LINQ和C查询数据集#,c#,asp.net,visual-studio-2010,linq,C#,Asp.net,Visual Studio 2010,Linq,我有一个数据集,其中有一列名为PName,PCode和PDesc。我是否可以根据类似这样的查询设置数据源 gridview.DataSource = Get me everything where PName LIKE 'somevalue' OR PCode LIKE 'somevalue' OR PDesc LIKE 'somevalue' 我试图找到关于使用LINQ的方法,但我没有看到使用OR的方

我有一个
数据集
,其中有一列名为
PName
PCode
PDesc
。我是否可以根据类似这样的查询设置数据源

gridview.DataSource = Get me everything where PName LIKE 'somevalue' 
                      OR PCode LIKE 'somevalue' 
                      OR PDesc LIKE 'somevalue'

我试图找到关于使用LINQ的方法,但我没有看到使用OR的方法,这可能吗?。如果有任何提示/帮助,我将不胜感激。

您可以从Where子句中使用逻辑OR运算符(
|
)。没有类似的函数,但您可以使用
字符串
函数
BeginsWith
EndsWith
、或
Contains
(取决于您使用LIKE的方式)完成类似的操作:


你可以试试这个:

gridview.DataSource = from d in DataSetVar.Tables[0].AsEnumerable()
                  where d.Field<string>("PName").IndexOf("stringToFind1") >= 0 ||
                  d.Field<string>("PCode ").IndexOf("stringToFind2") >= 0 ||
                  d.Field<string>("PDesc").IndexOf("stringToFind3") >= 0
                  select d;
gridview.DataSource=来自DataSetVar.Tables[0]中的d
其中d.Field(“PName”).IndexOf(“stringToFind1”)>=0||
d、 字段(“PCode”).IndexOf(“stringToFind2”)>=0||
d、 字段(“PDesc”).IndexOf(“stringToFind3”)>=0
选择d;

此外,AsEnumerable是System.Data.DataSetExtensions库的一部分。

PName、PCode和PDesc是列,somevalue是值。。所以我会在contains中传递列的名称?
gridview.DataSource = from d in DataSetVar.Tables[0].AsEnumerable()
                  where d.Field<string>("PName").IndexOf("stringToFind1") >= 0 ||
                  d.Field<string>("PCode ").IndexOf("stringToFind2") >= 0 ||
                  d.Field<string>("PDesc").IndexOf("stringToFind3") >= 0
                  select d;