我有一个包含多个字段的sharepoint列表。似乎当一个字段在其中一个记录上留空时 - 当我使用CAML查询查询列表时,该字段上缺少该属性。
是否可以编写查询以返回不包含此属性的记录?
示例:
id Employee Title description
-------------------------
1 Jeff Person1
2 Bob Person2
3 Charles Person3
4 Person4
5 Person5
有没有办法查询这个只返回id为4和5的记录,因为他们把名字段留空了?
我尝试了以下内容:
System.Text.StringBuilder xmlQuery = new StringBuilder();
xmlQuery.Append("<Query>");
xmlQuery.Append(" <Where>");
xmlQuery.Append(" <IsNull>");
xmlQuery.Append(" <FieldRef Name=\"Employee Title\" />");
xmlQuery.Append(" </IsNull>"); xmlQuery.Append(" </Where>");
xmlQuery.Append("</Query>"); XmlNode query = new XmlDocument();
query.InnerXml = xmlQuery.ToString();
但当然这些记录中不存在该属性,因此不会返回任何内容
提前致谢!
修改
使用Name
x0020
中的任何空格后,查询有效
xmlQuery.Append(" <FieldRef Name=\"Employee_x0020_Title\" />");
答案 0 :(得分:1)
如果字段值缺少一个或多个字段,应该没有任何问题,这是正常的,应该可以工作。但是,您在查询中必须做的一项更改是删除外部查询标记,请使用以下查询,您应该很高兴。
<Where>
<IsNull>
<FieldRef Name="Name" />
</IsNull>
</Where>
答案 1 :(得分:0)
这是一个远景,但你的“名字”专栏实际上在名单中命名为“标题”吗?
FieldRef期望字段AFAIK的内部名称