Caml 查询没有 return 值

Caml query doesn't return value


我有 Sharepoint 2013 列表 "Employee",其中包含包含员工联系信息的文件夹。有一个字段有助于识别每个员工:员工 GUID。此字段的类型为 "Text" 和格式(示例):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 的员工。

我做错了什么?请解释一下!

您的 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>";