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;