2010-11-09 10 views
7

Ich versuche, das neueste Element von einem bestimmten Benutzer durch CAML-Abfrage erstellt, aber es scheint alle Daten von allen erstellt zurückgeben.Wie bekomme ich das neueste Element von einem bestimmten Benutzer von CAML-Abfrage erstellt

Hilfe bitte.

Hier ist mein Code:

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

Was ist der Wert der Variablen '_id'? –

+2

Probieren Sie dieses Tool, um Ihnen zu helfen http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx –

Antwort

10

Versuchen Sie folgendes:

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 schlug mich dazu. Das ist genau das, was sie braucht. :) –

+0

WOW! Danke, reich. : D – janejanejane

0

verwendet das aktuelle Datum in einem CAML akzeptables Format zu erhalten:

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

Diese Abfrage werden Sie die von einem Benutzer erstellten Elemente von neu nach alt . Ich bin mir nicht sicher, wie Sie nur einen Knoten zurückgeben würden.

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

Sie könnten mit der Abfrage ein wenig zu verwirren haben um korrekte Spaltennamen (etc.) zu bekommen, aber ich denke, das könnte sein, was Sie fragen?