2016-03-14 89 views
0

我已經與CAML查詢的問題 - 選擇一個SharePoint項目該字段「標題」是一個特定值的...CAML查詢將返回錯誤的行

Dim camlQuery As New CamlQuery() 
    camlQuery.ViewXml = "<Query><where><Contains><FieldRef Name='Title'/><Value Type='Text'>" & orderno & "</value></Contains></where></Query>" 

問題是這樣返回所有列表中的項目。 Orderno將是一個guid,所以它是獨一無二的。 我在這裏讀過幾個問題,但有一些建議,但沒有任何工作。

我試着

<contains> 

更換

<eq> 

但是,這是沒有用的。 查詢的開始用於讀取

<View><Query>  

而且我已經改變了它但是這並沒有影響無論是。 據我可以看到查詢看起來確定 - 不知道爲什麼這會出錯。

編輯: 另外,這是使用microsoft.sharepoint.client,因此.items()在列表對象上不可用。

回答

1

的CAML在你的問題有語法問題,因爲CAML是區分大小寫的。

<where><Where></where></Where>,並且</value></Value>。 (與之相似,<eq><Eq><contains>應該<Contains>。)

設置它作爲.ViewXml屬性的值時,您應環繞整個CAML查詢在<View></View>標籤。如果您想添加<RowLimit>元素,則會在關閉</Query>標記之後但在關閉</View>標記之前。

+0

是 - 它排序它。 –

1

在這種情況下使用Caml查詢生成器。它將幫助您獲得預期的結果,並且在此您還需要在嘗試獲取列表項時使用客戶端對象模型中的「查看」標記。

它可以幫助你:)

+0

看起來它可能有用 - 任何想法如何在連接時指定代理信譽 - 我在工作中的安全設置是愚蠢的,並且不會使用任何東西 –

+0

如果您使用的是使用SharePoint本地環境,則需要您的系統憑據sharepoint在線然後下載這個https://karinebosch.wordpress.com/2012/12/13/caml-designer-for-sharepoint-2013-released/ – Addy

+0

你可以搜索caml-designer-for-sharepoint-2013-released和你將獲得很多工具可用 並嘗試與此。 抓住機會,讓我知道如果你不能做到這一點,我會給你提供一個示例查詢:) – Addy