查询SharePoint列表以获取多个输入时发生CAML错误

健身守则

我有一个CAML查询,查询从SharePoint列表中检索数据它通过1个输入,但在2个或更多时失败。

错误:

Microsoft.SharePoint.SPException:一种或多种字段类型未正确安装。转到列表设置页面以删除这些字段。---> System.Runtime.InteropServices.COMException:一种或多种字段类型未正确安装。转到列表设置页面以删除这些字段。


经过研究,可能的原因可能是由于SharePoint列不匹配InternalName但是,查询设法对1个输入执行,但不对2个或更多输入执行。

根据以下查询示例,FAIL案例格式是否错误


1.通过:

<Where>
    <And>
        <Eq>
            <FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value>
        </Eq>
        <Neq>
            <FieldRef Name ="ContentType"/><Value Type="Text">Document</Value>
        </Neq>
    </And>
</Where>

2.失败:

<Where>
    <And>
        <Eq>
            <And>
                <Or>
                    <Eq>
                        <FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value>
                    </Eq>
                    <Eq>
                        <FieldRef Name="Header1Ref"/><Value Type="Text">H2</Value>
                    </Eq>
                </Or>
                    <Neq>
                        <FieldRef Name ="ContentType"/><Value Type="Text">Document</Value>
                    </Neq>
            </And>
        </Eq>
    </And>
</Where>

3.失败:

<Where>
    <And>
        <Eq>
            <And>
                <Or>
                    <FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value>
                    <FieldRef Name="Header1Ref"/><Value Type="Text">H2</Value>
                </Or>
                <Neq>
                    <FieldRef Name ="ContentType"/><Value Type="Text">Document</Value>
                </Neq>
            </And>
        </Eq>
        <Neq>
            <FieldRef Name ="ContentType"/><Value Type="Text">Document</Value>
        </Neq>
    </And>
</Where>
LZ_MSFT

这是CAML查询的问题,我将代码修改如下,以供您参考。

string siteUrl = "http://sp2013";
string listTitle = "DL";
string viewName="Test";

using (SPSite site = new SPSite(siteUrl))
{
    using (SPWeb web = site.OpenWeb())
    {
        SPList list = web.Lists[listTitle];
        SPView view=list.Views[viewName];
        string orQuery = "<Or><Eq><FieldRef Name=\"Header1Ref\"/><Value Type=\"Text\">H1</Value></Eq><Eq><FieldRef Name=\"Header1Ref\"/><Value Type=\"Text\">H2</Value></Eq></Or>";
        string subQuery = String.Format("<Neq><FieldRef Name =\"ContentType\"/><Value Type=\"Text\">{0}</Value></Neq>", "Document");
        string queryText = String.Format("<Where><And>{0}{1}</And></Where>", orQuery, subQuery);
        var query = new SPQuery(view)
        {
            Query = queryText,
            ViewAttributes = "Scope=\"RecursiveAll\"",
            ViewFields = @"<FieldRef Name='RecordTitle'/>",
        };

        SPListItemCollection items = list.GetItems(query);
        foreach (SPListItem item in items)
        {
            Console.WriteLine(item["RecordTitle"]);
        }
        Console.ReadKey();
    }
}

CAML查询如下。

<Where>
    <And>
        <Or>
            <Eq><FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value></Eq>
            <Eq><FieldRef Name="Header1Ref"/><Value Type="Text">H2</Value></Eq>
        </Or>
        <Neq>
            <FieldRef Name="ContentType"/><Value Type="Text">Document</Value>
        </Neq>
    </And>
</Where>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询以从多个输入获取ID

来自分类Dev

什么会导致Java本机函数(用C语言)在输入时发生段错误?

来自分类Dev

如何获取页面中发生的PHP错误列表?

来自分类Dev

CAML查询以根据修改日期对列表项进行排序

来自分类Dev

使用变量作为输入时发生非对象错误的Bind_param()

来自分类Dev

当使用AND条件输入多个单词作为输入时,使用jQuery过滤列表

来自分类Dev

jQuery延迟/有多个SharePoint CAML查询的承诺

来自分类Dev

触发器在批量插入时导致错误(子查询返回多个值)

来自分类Dev

尝试在循环语句内的开关中获取多个输入时出错

来自分类Dev

尝试从表单解析输入时发生未定义的错误。Java脚本

来自分类Dev

SQL查询以从多个输入中获取ID

来自分类Dev

Sharepoint Caml过滤器列表

来自分类Dev

Sharepoint 2010 CAML查询,检索列的描述

来自分类Dev

通过FileLeafRef查询时,sharepoint caml查询不起作用

来自分类Dev

Sharepoint多个列表更新

来自分类Dev

CAML查询具有多个值的查询字段

来自分类Dev

获取外部输入时,生成无限项列表不会“暂停”

来自分类Dev

从命令行获取输入时,sed提供错误

来自分类Dev

插入时发生Python / MySQL错误

来自分类Dev

插入时发生Python键错误

来自分类Dev

CAML查询仅获取非重复项

来自分类Dev

Sharepoint Camlex Caml加入错误

来自分类Dev

使用Sharepoint Designer在Sharepoint列表视图页面上的caml查询中使用JavaScript变量或函数

来自分类Dev

SharePoint CAML查询返回不存在的行

来自分类Dev

用户注册表单-获取错误消息以仅在错误输入时显示

来自分类Dev

在Ajax查询中使用预输入时发生ember-select-2问题

来自分类Dev

CAML 查询以获取特定行

来自分类Dev

不使用 CAML 查询从 SharePoint 列表中获取数据

来自分类Dev

使用输入获取键输入时出现多处理错误

Related 相关文章

  1. 1

    SQL查询以从多个输入获取ID

  2. 2

    什么会导致Java本机函数(用C语言)在输入时发生段错误?

  3. 3

    如何获取页面中发生的PHP错误列表?

  4. 4

    CAML查询以根据修改日期对列表项进行排序

  5. 5

    使用变量作为输入时发生非对象错误的Bind_param()

  6. 6

    当使用AND条件输入多个单词作为输入时,使用jQuery过滤列表

  7. 7

    jQuery延迟/有多个SharePoint CAML查询的承诺

  8. 8

    触发器在批量插入时导致错误(子查询返回多个值)

  9. 9

    尝试在循环语句内的开关中获取多个输入时出错

  10. 10

    尝试从表单解析输入时发生未定义的错误。Java脚本

  11. 11

    SQL查询以从多个输入中获取ID

  12. 12

    Sharepoint Caml过滤器列表

  13. 13

    Sharepoint 2010 CAML查询,检索列的描述

  14. 14

    通过FileLeafRef查询时,sharepoint caml查询不起作用

  15. 15

    Sharepoint多个列表更新

  16. 16

    CAML查询具有多个值的查询字段

  17. 17

    获取外部输入时,生成无限项列表不会“暂停”

  18. 18

    从命令行获取输入时,sed提供错误

  19. 19

    插入时发生Python / MySQL错误

  20. 20

    插入时发生Python键错误

  21. 21

    CAML查询仅获取非重复项

  22. 22

    Sharepoint Camlex Caml加入错误

  23. 23

    使用Sharepoint Designer在Sharepoint列表视图页面上的caml查询中使用JavaScript变量或函数

  24. 24

    SharePoint CAML查询返回不存在的行

  25. 25

    用户注册表单-获取错误消息以仅在错误输入时显示

  26. 26

    在Ajax查询中使用预输入时发生ember-select-2问题

  27. 27

    CAML 查询以获取特定行

  28. 28

    不使用 CAML 查询从 SharePoint 列表中获取数据

  29. 29

    使用输入获取键输入时出现多处理错误

热门标签

归档