CAML查找查找参数不存在的记录?

时间:2009-11-17 03:02:38

标签: sharepoint caml not-exists

我有一个包含多个字段的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\" />");

2 个答案:

答案 0 :(得分:1)

如果字段值缺少一个或多个字段,应该没有任何问题,这是正常的,应该可以工作。但是,您在查询中必须做的一项更改是删除外部查询标记,请使用以下查询,您应该很高兴。

<Where>       
<IsNull>           
<FieldRef Name="Name" />       
</IsNull>   
</Where>

答案 1 :(得分:0)

这是一个远景,但你的“名字”专栏实际上在名单中命名为“标题”吗?

FieldRef期望字段AFAIK的内部名称