2016-03-14 131 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