我正在尝试通过CAML查询获取特定用户创建的最新项目,但它似乎返回所有人创建的所有数据。
请帮助。
这是我的代码:
string lifestyleQuery = @"<Where><Eq><FieldRef Name='Author' /><Value Type='Text'>" + _id + @"</Value></Eq></Where>";
答案 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>";
你可能不得不乱用查询来获得正确的列名(等等),但我想这可能是你要问的?