从sharepoint列表中获取数据,该数据在10天或更短的时间内到期

时间:2012-08-07 19:07:31

标签: sharepoint-2010

我有一个列表,我想获得即将在10天或更短时间内过期的数据。所以我有两个字段创建日期和到期日期。

任何人都可以告诉我如何使用spquery或sharepoint中的任何其他方式实现此目的?

谢谢。

1 个答案:

答案 0 :(得分:2)

有两种查询数据的方法(排除整个网站集的查询)SPQuery和SPMetal(LINQ to SharePoint)。

一般情况下,我尝试使用SPMetal生成的对象,只进入CAML(SPQuery)进行复杂查询。

以下是使用SPMetal对象的2个示例。

ExporttestsDataContext context = new ExporttestsDataContext(SPContext.Current.Web.Url);

        var data = from d in context.Demo
                   where d.Expire < DateTime.Now.AddDays(5) && d.Expire >= DateTime.Now
                   select d;

        foreach (DemoItem item in data)
        {                
            //dowork
        }

现在SPQuery

            SPList list = SPContext.Current.Web.Lists["Demo"];
        SPQuery query = new SPQuery();
        query.Query = "<Where><And><Lt><FieldRef Name='Expire' /><Value Type='DateTime'><Today OffsetDays='10' /></Value></Lt><Geq><FieldRef Name='Expire' /><Value Type='DateTime'><Today /></Value></Geq></And></Where>";

        SPListItemCollection items = list.GetItems(query);
        foreach (SPListItem item in items)
        {
            //DoWork
        }

有关CAML的一些信息,请参阅http://sharepointmagazine.net/articles/writing-caml-queries-for-retrieving-list-items-from-a-sharepoint-list。 (我不得不使用OffsetDays而不是Offset来完成上述工作)。

可以通过Google SPMetal获取更多相关信息。一个很好的工具是CKS开发工具,因为只需点击几下VisualStudio即可生成这个类。