2010-11-09 16 views
7

Sto cercando di ottenere l'oggetto più recente creato da una specifica query CAML, ma sembra che restituisca tutti i dati creati da tutti.Come ottenere l'ultimo elemento creato da un utente specifico dalla query CAML

Guida per favore.

Ecco il mio codice:

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

Qual è il valore del '_id' variabili? –

+2

Prova questo strumento per aiutarti http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx –

risposta

10

Prova questo:

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 mi ha battuto. Questo è esattamente ciò di cui ha bisogno. :) –

+0

WOW! Grazie ricco. : D – janejanejane

0

Usare questo per ottenere la data corrente in un formato accettabile CAML:

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

Questa query vi darà gli elementi creati da un utente dal più recente al più vecchio . Non sono sicuro di come restituiresti un solo nodo.

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

Potrebbe capitare di dover pasticciare con la query un po 'per ottenere i nomi di colonna corretti (etc.), ma penso che questo potrebbe essere quello che stai chiedendo?