如何通过CAML查询获取特定用户创建的最新项目

时间:2010-11-09 12:12:29

标签: c# sharepoint caml splistitem

我正在尝试通过CAML查询获取特定用户创建的最新项目,但它似乎返回所有人创建的所有数据。

请帮助。

这是我的代码:

string lifestyleQuery = @"<Where><Eq><FieldRef Name='Author' /><Value Type='Text'>" + _id + @"</Value></Eq></Where>";

2 个答案:

答案 0 :(得分:10)

试试这个:

SPQuery query = new SPQuery();
query.Query = @"<Where><Eq><FieldRef Name='Author' LookupId='TRUE' /><Value Type='Integer'>" + _id + @"</Value></Eq></Where><OrderBy><FieldRef Name='Created' Ascending='False' /></OrderBy>";
query.RowLimit = 1;

答案 1 :(得分:0)

使用此选项以CAML可接受的格式获取当前日期:

DateTime dt = DateTime.Now;
string currentDate = String.Format("{0:yyyy-MM-ddThh-mm-ssZ}", dt);

此查询将为您提供用户从最新到最旧创建的项目。我不确定你将如何只返回一个节点。

string lifestyleQuery = @"<Query><OrderBy><FieldRef Name='Date'></OrderBy><Where><And><Eq><FieldRef Name='Author' /><Value Type='Text'>" + _id + @"</Value></Eq><Lt><FieldRef Name='Date' /><Value Type='DateTime'>" + currentDate + @"</Value></Lt></Where></Query>";

你可能不得不乱用查询来获得正确的列名(等等),但我想这可能是你要问的?