【问题标题】:Caml query returns wrong rowsCaml 查询返回错误的行
【发布时间】:2016-06-29 08:07:23
【问题描述】:

我有一个 caml 查询的问题 - 选择一个共享点项目,其中“标题”字段具有特定值...

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

问题是这会返回列表中的所有项目。 Orderno 将是一个向导,所以它是独一无二的。 我在这里阅读了一些问题,提出了一些建议,但没有任何效果。

我试过替换

  <eq> 

  <contains>

但这没有用。 用于读取的查询的开始

  <View><Query>      

我已经更改了它,但这也没有任何效果。 据我所见,查询看起来不错 - 不知道为什么会出错。

编辑: 此外,这是使用 microsoft.sharepoint.client 所以 .items() 在列表对象上不可用。

【问题讨论】:

    标签: sharepoint caml


    【解决方案1】:

    您问题中的 CAML 存在语法问题,因为 CAML 区分大小写。

    &lt;where&gt; 应该是 &lt;Where&gt;&lt;/where&gt; 应该是 &lt;/Where&gt;&lt;/value&gt; 应该是 &lt;/Value&gt;。 (类似地,&lt;eq&gt; 应该是 &lt;Eq&gt;&lt;contains&gt; 应该是 &lt;Contains&gt;。)

    将整个 CAML 查询设置为 .ViewXml 属性的值时,应将其包装在 &lt;View&gt;&lt;/View&gt; 标记中。如果你想添加一个&lt;RowLimit&gt;元素,它会出现在&lt;/Query&gt;结束标签之后,&lt;/View&gt;结束标签之前。

    【讨论】:

    • 是的 - 对它进行了排序。
    【解决方案2】:

    在这种情况下使用 Caml 查询生成器。它将帮助您获得预期的结果,这里更重要的一点是,当您尝试获取列表项时,您需要在客户端对象模型中使用“查看”标签。

    它可能对你有帮助:)

    【讨论】:

    • 这看起来很有用 - 知道你在连接时如何指定代理凭据 - 我在工作中的安全设置是愚蠢的,不会允许任何东西
    • 如果您在线使用 sharepoint,则在使用 sharepoint on-prem 环境时将获取您的系统凭据,然后下载此karinebosch.wordpress.com/2012/12/13/…
    • 你可以搜索 caml-designer-for-sharepoint-2013-released ,你会得到很多可用的工具并尝试使用它。抓住机会告诉我,如果你不能这样做,我会为你提供一个示例查询:)
    • 你能给我一个样品吗?继续使用 u2u 工具获得 407 - 与来自camldesigner.com/index.php/2016/01/12/caml-designer-2013的工具相同
    • 由于某种原因也失败了 - 407
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多