2009-11-17 2 views
0

У меня есть список sharepoint, который имеет несколько полей. Похоже, что когда поле остается пустым в одной из записей - этот атрибут отсутствует в поле, когда я запрашиваю список с помощью запроса CAML.Запрос CAML находит записи, где параметр не существует?

Можно ли написать запрос, чтобы вернуть записи, которые не содержат этого атрибута?

Пример:

id Employee Title description 
------------------------- 
1 Jeff Person1 
2 Bob Person2 
3 Charles Person3 
4 Person4 
5 Person5 

Есть ли способ запроса это возвращает только записи с идентификатором 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\" />"); 

ответ

1

Там не должно быть проблемой, если значение поля отсутствует один или несколько полей, это нормально и должно работать. Но одно изменение, которое вам нужно будет сделать в запросе, - удалить внешний тег запроса, пожалуйста, используйте приведенный ниже запрос, и вам должно быть хорошо идти.

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

Спасибо, что подтвердили, что это возможно! Я нашел свою ошибку, наверное, должен был разместить мой фактический код, а не образец. Образец работал как мой код. Если бы я мог голосовать, я бы это сделал. Благодаря! – Khan

+0

Теперь можно поднять, так что я и сделал. :) – Khan

0

Это длинный снимок, но ваш столбец «Имя» на самом деле назван «Заголовок» в списке?

FieldRefs ожидает, что внутреннее название поля AFAIK

Смежные вопросы