C# C:如何从关键字查询返回的ResultsTable中选择特定行?
我正在尝试对Sharepoint列表执行两次搜索。在第一步中,我使用关键字查询来搜索所有项目的索引。在第二步中,我将应用用户通过构建select语句选择的列值过滤器C# C:如何从关键字查询返回的ResultsTable中选择特定行?,c#,sharepoint-2010,keyword-search,C#,Sharepoint 2010,Keyword Search,我正在尝试对Sharepoint列表执行两次搜索。在第一步中,我使用关键字查询来搜索所有项目的索引。在第二步中,我将应用用户通过构建select语句选择的列值过滤器 ResultTableCollection rtc = kwqry.Execute(); ResultTable rt = rtc[ResultType.RelevantResults]; dt = new DataTable(); //Load Data Table dt.Load(rt, LoadOption.Overw
ResultTableCollection rtc = kwqry.Execute();
ResultTable rt = rtc[ResultType.RelevantResults];
dt = new DataTable();
//Load Data Table
dt.Load(rt, LoadOption.OverwriteChanges);
DataRow[] rows = dt.Select("ColumnName1 = 'foo' AND ColumnName2 = 'bar'");
其中列可以是Sharepoint列表中的多值查找列。第一个过程工作正常,并在数据表中返回正确数量的匹配项。但是,当我尝试应用Select语句时,出现以下错误:无法对System.String[]和System.String执行“=”操作。将列转换为字符串而不是字符串数组会导致与使用in运算符相同的错误
我是否错误地生成select语句?如何在我的数据表上运行第二个过程过滤器?您尝试过LINQ吗
DataTable t1 = new DataTable();
var rows = from x in t1.AsEnumerable()
where x.Field<string[]>("column1name").Contains("foo")
select x;
您必须在Where子句中指定字段类型
希望能有帮助 尝试使用此选项,它将起作用: DataRow[]rows=dt.SelectColumnName1='foo'和ColumnName2='bar'