Friday, May 25, 2007

WSS 3.0 Cross List Query (Aggregation)

The following code walks recursively down through document libraries below a given web, returning all documents

static void Main(string[] args)
{
using (SPSite rootSite = new SPSite("http://wss30"))
{

using (SPWeb site = rootSite.OpenWeb())
{
SPSiteDataQuery query = new SPSiteDataQuery();

string strOrderBy = "<OrderBy><FieldRef Name="FileRef" /></OrderBy>";
query.Query = strOrderBy;
query.Lists = "<Lists ServerTemplate="101" />";
query.ViewFields = "<FieldRef Name="Title" />";
query.Webs = "<Webs Scope="Recursive" />";

DataTable dtResults = site.GetSiteData(query);
}
}

}