У меня есть следующий код:Запрос CAML возвращает неверные результаты?
SPQuery oQuery = new SPQuery();
oQuery.Query = @"<Query>
<Where>
<And>
<Eq>
<FieldRef Name='PublishToSM' />
<Value Type='Boolean'>1</Value>
</Eq>
<IsNull>
<FieldRef Name='SMUpdateDate' />
</IsNull>
</And>
</Where>
</Query>";
SPListItemCollection collListItems = list.GetItems(oQuery);
NevCoSocialMedia.NevCoFacebook fb = new NevCoSocialMedia.NevCoFacebook();
foreach (SPListItem oListItem in collListItems)
{
if (oListItem.Fields.ContainsField("PublishToSM") && Convert.ToBoolean(oListItem["PublishToSM"]) == true)
{
.
.
.
Мой вопрос, почему мне нужно иметь последнее if
заявление? Если у меня этого нет, он будет вызывать ошибку, говоря, что идентификатор не существует, когда он пытается сделать oListItem["PublishToSM"]
. Это кажется невозможным, так как мой CAML запрос проверяет, что это имеет соответствующее значение ...
Я думаю, что использование 'Type = 'Boolean'' и' 1' будет работать. Ссылка, на которую вы ссылаетесь, использует «true». –