Как получить последний элемент, созданный конкретным пользователем, по запросу CAML - PullRequest
7 голосов
/ 09 ноября 2010

Я пытаюсь получить самый последний элемент, созданный конкретным пользователем, по запросу CAML, но, похоже, он возвращает все данные, созданные всеми.

Помогите, пожалуйста.

Вот мой код:

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

Ответы [ 2 ]

10 голосов
/ 09 ноября 2010

Попробуйте это:

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;
0 голосов
/ 09 ноября 2010

Используйте это, чтобы получить текущую дату в приемлемом формате 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>";

Возможно, вам придется немного возиться с запросом, чтобы получить правильные имена столбцов (и т. Д.), Но я думаю, что это может быть то, что вы спрашиваете?

...