我遇到了caml查询的问题 - 选择一个共享点项目,其中字段为" Title"具有特定的价值......
Dim camlQuery As New CamlQuery()
camlQuery.ViewXml = "<Query><where><Contains><FieldRef Name='Title'/><Value Type='Text'>" & orderno & "</value></Contains></where></Query>"
问题是这会返回列表中的所有项目。 Orderno将是一个guid,所以它是独一无二的。 我在这里读了一些问题但有一些建议,但没有任何效果。
我试过替换
<eq>
与
<contains>
但这没用。 用于读取
的查询的开头 <View><Query>
我已经改变了,但这也没有效果。 据我所知,查询看起来还不错 - 不知道为什么会出错。
编辑: 此外,这是使用microsoft.sharepoint.client,因此.items()在列表对象上不可用。
答案 0 :(得分:1)
在这种情况下使用Caml Query Builder。它将帮助您获得预期的结果,另一个更重要的一点是,当您尝试获取列表项时,需要在客户端对象模型中使用“查看”标记。
它可能对你有所帮助:)。
答案 1 :(得分:1)
您问题中的CAML存在语法问题,因为CAML区分大小写。
<where>
应为<Where>
,</where>
应为</Where>
,</value>
应为</Value>
。 (相似,<eq>
应为<Eq>
,<contains>
应为<Contains>
。)
将{CAM}查询设置为<View></View>
属性的值时,应将整个CAML查询包装在.ViewXml
标记中。如果您要添加<RowLimit>
元素,则会在结束</Query>
代码之后但在结束</View>
代码之前添加。