我有sharepoint 2013列表“员工”,其中包含员工的联系信息的文件夹。有一个字段有助于识别每个员工:员工GUID。该字段的类型为 “文本” 和格式(例如):a3c73e48-d38e-4c83-8ed4-df70d3037cc2。
我想使用查询来查找我想要的guid员工。我使用下面的代码:
string guid = "a3c73e48-d38e-4c83-8ed4-df70d3037cc2";
string sQuery = @"<Where><Eq><FieldRef Name=""Title""></FieldRef><Value Type=""Text"">"+guid+"</Value></Eq></Where>";
var oQuery = new SPQuery();
oQuery.Query = sQuery;
oQuery.Folder = folder;
SPListItemCollection collListItems = list.GetItems(oQuery);
在collListItems.Count中我收到了0!
但是在camlQueryBuilder中,我收到了员工。如果我使用文本字段:姓氏+第二个名称来标识项目,我收到带有这样的姓氏+第二名称的项目的集合,并在那里我找到了我想要的guid员工。
我做错了什么?请解释一下!
答案 0 :(得分:0)
您的CAML查询指定您要搜索Title
字段(其中显示FieldRef Name="Title"
),但您要查找的GUID不在该字段中。我使用的列表项有两个GUID字段,一个名为GUID
,另一个名为UniqueId
。这两个字段具有不同的值,因此您可能需要同时尝试查看哪个包含您想要的值。
对于GUID
字段,您的查询应如下所示:
string sQuery = @"<Where><Eq><FieldRef Name=""GUID""></FieldRef><Value Type=""Text"">"+guid+"</Value></Eq></Where>";
对于UniqueId
字段,您的查询应如下所示:
string sQuery = @"<Where><Eq><FieldRef Name=""UniqueId""></FieldRef><Value Type=""Text"">"+guid+"</Value></Eq></Where>";