2010-11-09 32 views
7

J'essaie d'obtenir l'élément le plus récent créé par un utilisateur spécifique par requête CAML mais il semble retourner toutes les données créées par tout le monde.Comment faire pour obtenir le dernier élément créé par un utilisateur spécifique par requête CAML

Aide s'il vous plaît.

Voici mon code:

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

Quelle est la valeur de la variable '_id'? –

+2

Essayez cet outil pour vous aider http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx –

Répondre

10

Essayez ceci:

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

Dang me battre à elle. C'est exactement ce dont elle a besoin. :) –

+0

WOW! Merci Rich. :RÉ – janejanejane

0

Utilisez cette option pour obtenir la date actuelle dans un CAML format acceptable:

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

Cette requête vous donnera les éléments créés par un utilisateur du plus récent au plus ancien . Je ne suis pas sûr de savoir comment vous retourneriez un seul noeud.

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>"; 

Vous pourriez avoir à mess avec la requête un peu pour obtenir les noms de colonnes correctes (etc.), mais je pense que cela pourrait être ce que vous demandez?