"Свойство 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 в один ряд, это будет работать.

Другие вопросы по тегам