我對CamlQuery非常陌生,需要一些幫助才能使其工作。CamlQuery - 如何在C#中使用Where子句#
我安裝了一個名爲CamlDesigner的工具來幫助我生成在Sharepoint中過濾集合所需的XML,但CamlDesigner構造的XML查詢在我的C#代碼隱藏中不起作用。我有一個ID字段,我試圖過濾,我只是想從Sharepoint中檢索ID = 1(或2或3或其他)的項目。
這是由設計器生成的CAML查詢:
<Where>
<Eq>
<FieldRef Name='ID' />
<Value Type='Counter'>1</Value>
</Eq>
</Where>
這裏就是我試圖將這一CAML查詢我的C#代碼。 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