簡體   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