"Свойство Query содержит недопустимое значение." - Я не вижу этого
query.Query = @"<Where>
<And>
<BeginsWith>
<FieldRef Name='ContentTypeId'/>
<Value Type='Text'>[LONG GUID]</Value>
</BeginsWith>
<And>
<Geq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Geq>
<Leq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Leq>
</And>
</And>
</Where>
<OrderBy>
<FieldRef Name='PublishingStartDate' Ascending='FALSE' />
</OrderBy>";
Приведенный выше запрос пытается вернуть все элементы определенного типа контента между двумя датами и порядком (по убыванию) по одному и тому же полю даты.
РЕДАКТИРОВАТЬ: я должен отметить, что это SPSiteDataQuery
2 ответа
Я не вижу ничего плохого в вашем CAML. Одна вещь, которую я заметил, это значение значений фильтра PublishingStartDate. И Geq, и Leq имеют одинаковое значение даты и времени.
<Geq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Geq>
<Leq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Leq>
Вы уверены, что оба фильтра должны использовать одну и ту же дату?
Возможно, уже слишком поздно, чтобы ответить на этот вопрос, но для дальнейшего ознакомления: проблема в том, что в запросе не может быть символов новой строки или поля просмотра. У меня была такая же проблема - если вы поместите все CAML в один ряд, это будет работать.