Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C:如何从关键字查询返回的ResultsTable中选择特定行?_C#_Sharepoint 2010_Keyword Search - Fatal编程技术网

C# C:如何从关键字查询返回的ResultsTable中选择特定行?

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

我正在尝试对Sharepoint列表执行两次搜索。在第一步中,我使用关键字查询来搜索所有项目的索引。在第二步中,我将应用用户通过构建select语句选择的列值过滤器

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'