首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharePoint:创建SPQuery查询时出现CAML查询错误

SharePoint:创建SPQuery查询时出现CAML查询错误
EN

Stack Overflow用户
提问于 2011-08-15 21:35:48
回答 2查看 1.9K关注 0票数 2

我有这个CAML查询

代码语言:javascript
复制
var query = new SPQuery
                                {
                                    Query = string.Format(@"<Where>
                                        <Or>
                                            <Or>
                                                <Or>
                                                    <Or>
                                                        <Contains>
                                                            <FieldRef Name='{7}' />
                                                            <Value Type='Text'>{3}</Value>
                                                        </Contains>
                                                    </Or>
                                                    <Contains>
                                                        <FieldRef Name='{6}' />
                                                        <Value Type='Text'>{2}</Value>
                                                    </Contains>
                                                </Or
                                                <Contains>
                                                    <FieldRef Name='{5}' />
                                                    <Value Type='Text'>{1}</Value>
                                                </Contains>
                                            </Or>
                                            <Contains>
                                                <FieldRef Name='{4}' />
                                                <Value Type='Text'>{0}</Value>
                                            </Contains>
                                        </Or>
                                    </Where>", "title", "adress", "zipcode", "city", "searchTitle", "searchAdress", "searchZipcode", "searchCity")
                                };

每次运行它,我尝试使用List.GetItems(query);时,它都会抛出这个错误:

代码语言:javascript
复制
One or more field types are not installed properly. Go to the list settings page to delete these fields.

但!如果我删除了所有的<Or>标签,它就能正常工作并且不会抛出这个错误,但我需要<Or>标签来确保它获得所有的命中。

我已经确保所有的fieldref都与列的内部名称100%匹配。

EN

回答 2

Stack Overflow用户

发布于 2011-08-15 21:54:03

你有没有试过在没有包含7/3元素的情况下进行查询?这是我不需要的。

此外,您/或的中有一个没有右括号<Value Type='Text'>{2}</Value></Contains></Or<Contains>,这可能是导致错误的原因。

票数 0
EN

Stack Overflow用户

发布于 2011-08-16 21:01:30

更正您的CAML

代码语言:javascript
复制
    var query = new SPQuery
                            {
                                Query = string.Format(@"<Where>
                                        <Or>
                                            <Or>
                                                <Or>
                                                    <Contains>
                                                        <FieldRef Name='{7}' />
                                                        <Value Type='Text'>{3}</Value>
                                                    </Contains>
                                                    <Contains>
                                                        <FieldRef Name='{6}' />
                                                        <Value Type='Text'>{2}</Value>
                                                    </Contains>
                                                </Or>
                                                <Contains>
                                                    <FieldRef Name='{5}' />
                                                    <Value Type='Text'>{1}</Value>
                                                </Contains>
                                            </Or>
                                            <Contains>
                                                <FieldRef Name='{4}' />
                                                <Value Type='Text'>{0}</Value>
                                            </Contains>
                                        </Or>
                                </Where>", "title", "adress", "zipcode", "city", "searchTitle", "searchAdress", "searchZipcode", "searchCity")
                            };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7065556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档