Я очень новичок в CamlQuery и нуждаюсь в некоторой помощи, чтобы это работало.CamlQuery - Как использовать предложение Where в C#
Я установил инструмент под названием CamlDesigner, чтобы помочь мне сгенерировать XML, необходимый для фильтрации коллекции в Sharepoint, но XML-запрос, который построил CamlDesigner, не работает в моем коде C#. У меня есть поле ID, которое я пытаюсь фильтровать, и я просто хочу получить элемент из Sharepoint, где ID = 1 (или 2 или 3 или что-то еще).
Вот запрос Caml генерируется дизайнером:
<Where>
<Eq>
<FieldRef Name='ID' />
<Value Type='Counter'>1</Value>
</Eq>
</Where>
Вот мой C# код, где я пытаюсь включить этот Caml запрос. C# работает, , но он возвращает каждый элемент из «My SP Coll», а не только возвращает элемент, где ID равен 1.
// Sharepoint web service to retrieve categories items there
ClientContext clientContext = new ClientContext("https://myweb.dev.com/SP");
List oList = clientContext.Web.Lists.GetByTitle("My SP Coll");
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "<Query><Where><Eq><FieldRef Name='ID'/><Value type='Counter'>" + ID.ToString() + "</Value></Eq></Where></Query>";
Microsoft.SharePoint.Client.ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem);
clientContext.ExecuteQuery();
foreach (Microsoft.SharePoint.Client.ListItem oListItem in collListItem) {
string ID = oListItem["ID"].ToString();
}
Спасибо за помощь!
Обертка с помощью тегов View была одной из первых вещей, которые я пробовал. К сожалению, он по-прежнему возвращает каждый элемент в коллекции. Кроме того, я исправил «Id». Это было также из-за некоторых тестов, что я просто забыл вернуться к «ID». Спасибо за помощь. – Jagd
@Jagd Я не вижу других ошибок, но вы могли бы просто пойти на себя и использовать «GetItemById» вместо всего этого. – Servy
Я просто собираюсь использовать GetItemById(). Еще раз спасибо! – Jagd