繁体   English   中英

CAML查询过滤不起作用

[英]CAML query filtering is not working

我用谷歌搜索,以防万一查询格式不正确。 但是我已经验证了几个小时,没有发现任何错误。 问题很常见:​​查询不会过滤并返回所有数据。

我不知道出什么问题了,因为我在Stramit CAML查看器中检查了此查询,并且工作正常。

        private static SPListItemCollection GetItemsForThisUserAndEvent(SPList list)
        {
            const string queryMask = 
@"<Where>
    <And>
        <Eq>
            <FieldRef Name='{0}' LookupId='TRUE' />
            <Value Type='Lookup'>{1}</Value>
        <Eq>
        <Eq>
            <FieldRef Name='{2}' LookupId='TRUE' />
            <Value Type='User'>{3}</Value>
        <Eq>
    </And>
<Where>";

            var query = string.Format(queryMask, MemberListFieldLookupEventName, SPContext.Current.ListItem.ID,
                                                 MemberListFieldLogin, SPContext.Current.Web.CurrentUser.ID);
            return list.GetItems(query);
        }

可以接受字符串的SPList.GetItems的重载实际上就是这种重载 ,它接受字段列表的params string[]参数,该字段列表应在返回该列表中的所有项目时返回。 它不希望CAML查询。

您需要将CAML填充到SPQuery对象中,然后将该SPQuery对象提供给GetItems

list.GetItems(new SPQuery() { Query = query });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM