C# 从Sharepoint日历获取定期项目时出现问题

C# 从Sharepoint日历获取定期项目时出现问题,c#,sharepoint-2010,calendar,caml,recurring-events,C#,Sharepoint 2010,Calendar,Caml,Recurring Events,我想在某一天取所有的东西。以编程方式将条目添加为定期事件,现在我需要根据用户选择的日期在每天获取定期事件的所有实例 例如:我在9月12日做了3个重复条目,截止到9月21日,三个条目都有不同的时间和单独的房间名 我想在12号、13号、14号等等直到21号按照选定的日期取回所有物品 下面是我用来获取所选日期的所有条目的代码,但我在这里遇到的问题是,只有当我选择日期为9月12日时,查询才会返回条目,对于所有其他日期,即从13日到21日,查询不会返回任何结果 SPQuery oQueryBoo

我想在某一天取所有的东西。以编程方式将条目添加为定期事件,现在我需要根据用户选择的日期在每天获取定期事件的所有实例

例如:我在9月12日做了3个重复条目,截止到9月21日,三个条目都有不同的
时间
和单独的
房间名

我想在12号、13号、14号等等直到21号按照选定的日期取回所有物品

下面是我用来获取所选日期的所有条目的代码,但我在这里遇到的问题是,只有当我选择日期为9月12日时,查询才会返回条目,对于所有其他日期,即从13日到21日,查询不会返回任何结果

    SPQuery oQueryBookings = new SPQuery();

                            string strQuery = "";
                            oQueryBookings.ExpandRecurrence = true;
                            //oQueryBookings.Query = strQuery;
                            oQueryBookings.CalendarDate = date.Date;
                            SPListItemCollection oCollBookings = null;
                            strQuery = "<Where><And><DateRangesOverlap><FieldRef Name='EventDate' />" +
                            "<FieldRef Name='EndDate' />" +
                                       "<FieldRef Name='RecurrenceID'/>" +
                                       "<Value Type='DateTime'>" +
                                       "<Today />" +
                                       "</Value>" +
                                      "</DateRangesOverlap>" +
                                      "<Eq><FieldRef Name='Room' /><Value Type='Lookup'>" + room + "</Value></Eq>" +
                                      "</And></Where>";

oQueryBookings.ViewFields = string.Concat("<FieldRef Name='Title' />" +
                    "<FieldRef Name='EventDate' />" +
                    "<FieldRef Name='EndDate' />" +
                    "<FieldRef Name='Location' />" +
                    "<FieldRef Name='Description' />" +
                    "<FieldRef Name='fRecurrence' />" +
                    "<FieldRef Name='RecurrenceData' />" +
                    "<FieldRef Name='fAllDayEvent' />" +
                    "<FieldRef Name='LinkTitle'/>" +
                    "<FieldRef Name='Room'/>");

                            oQueryBookings.Query = strQuery;
                            oCollBookings = list.GetItems(oQueryBookings);
                            if (oCollBookings.Count > 0)
                            {
                               //Code Here
                            }
SPQuery oQueryBookings=new SPQuery();
字符串strQuery=“”;
oQueryBookings.ExpandRecurrence=true;
//Query=strQuery;
oQueryBookings.CalendarDate=日期.date;
SPListItemCollection-oCollBookings=null;
strQuery=“”+
"" +
"" +
"" +
"" +
"" +
"" +
“”+房间+“”+
"";
oQueryBookings.ViewFields=string.Concat(“”)+
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"");
Query=strQuery;
oCollBookings=list.GetItems(oQueryBookings);
如果(oCollBookings.Count>0)
{
//代码在这里
}

问题是您正在使用
。您已经在查询中设置了CalendarDate属性,因此我建议您使用
来获取其余的项目。

问题是您正在使用
。您已经在查询中设置了CalendarDate属性,因此我建议您使用
来获取其余的项目。

问题在于保存项目,而
EventDate
EndDate
保存为同一天。

问题在于保存项目,
EventDate
EndDate
已保存为同一天。

我希望它用于
并且获取定期项目的查询是正确的。问题是保存项目时,
EventDate
EndDate
被保存为与上述情况相同的日期,这两个日期都是2012年9月12日,因此在第13天和以后的几天,
不起作用。我希望它用于
并且获取定期项目的查询是正确的。问题在于保存项目时,
EventDate
EndDate
被保存为与上述情况相同的日期,这两种情况都是2012年9月12日