CAML 查询筛选不起作用

本文关键字:不起作用 筛选 查询 CAML | 更新日期: 2023-09-27 17:56:41

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

我不知道出了什么问题,因为我在 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);
        }

CAML 查询筛选不起作用

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

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

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