【问题标题】:CAML query returns wrong results?CAML 查询返回错误结果?
【发布时间】:2013-12-03 20:39:13
【问题描述】:

我有以下代码:

                    SPQuery oQuery = new SPQuery();
                    oQuery.Query = @"<Query>
                                           <Where>
                                              <And>
                                                 <Eq>
                                                    <FieldRef Name='PublishToSM' />
                                                    <Value Type='Boolean'>1</Value>
                                                 </Eq>
                                                 <IsNull>
                                                    <FieldRef Name='SMUpdateDate' />
                                                 </IsNull>
                                              </And>
                                           </Where>
                                        </Query>";
                    SPListItemCollection collListItems = list.GetItems(oQuery);

                    NevCoSocialMedia.NevCoFacebook fb = new NevCoSocialMedia.NevCoFacebook();

                    foreach (SPListItem oListItem in collListItems)
                    {
                        if (oListItem.Fields.ContainsField("PublishToSM") && Convert.ToBoolean(oListItem["PublishToSM"]) == true)
                        {
.
.
.

我的问题是为什么我需要最后一个 if 语句?如果我没有这个,它会抛出一个错误,说当它尝试做oListItem["PublishToSM"] 时标识符不存在。这似乎是不可能的,因为我的 CAML 查询正在检查它是否具有适当的值...

【问题讨论】:

    标签: sharepoint sharepoint-2007 caml


    【解决方案1】:

    删除 “查询”元素

    包装你的相机

    【讨论】:

      【解决方案2】:

      尝试将值类型更改为整数

      <Eq>
          <FieldRef Name='PublishToSM' />
          <Value Type='Integer'>1</Value>
      </Eq>
      

      http://www.sharepointblues.com/2010/02/22/caml-and-querying-boolean-fields/

      【讨论】:

      • 我认为使用Type='Boolean'1 会起作用。您引用的链接使用的是true
      【解决方案3】:

      始终添加 ViewFields,如果不添加,则只会在返回的列表项中填写 ID 和 Title 等基本字段。

      【讨论】:

        【解决方案4】:

        我之前也遇到过在 caml 查询中使用布尔类型的奇怪问题。在我们 7 个环境中的 6 个环境中,布尔值运行良好,但在其中一个环境中却没有,它完全弄乱了我们的一个工作流程。我们一直无法弄清楚原因。

        在“PublishToSM”字段中尝试整数或位,看看是否会得到不同的结果。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-29
          • 1970-01-01
          • 2013-11-07
          • 1970-01-01
          • 2015-11-12
          • 2020-03-26
          • 2015-02-24
          • 2014-02-20
          相关资源
          最近更新 更多