SPQuery.Query Property

Gets or sets the inner XML used in the query.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online

public string Query { get; set; }

Property Value

Type: System.String
A string that contains a fragment in Collaborative Application Markup Language that defines the query. The string corresponds to the inner XML of the Query element in CAML, excluding the opening and closing <Query></Query> tags.

Caution noteCaution

You must include a Where element. If you do not, there is no error message, but every item in the list is returned. Aside from adversely affecting performance, this is a potentially dangerous scenario when your code makes a change to every returned item.

The following code example uses the Query property to define a query that returns items whose Field2 values are greater than 1000.


For information about how to use Language-Integrated Query (LINQ) queries to retrieve list items in SharePoint Foundation, see Managing Data with LINQ to SharePoint.

This example requires using directives (Imports in Microsoft Visual Basic) for the Microsoft.SharePoint and Microsoft.SharePoint.Utilities namespaces.

using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)
    SPList oList = oWebsiteRoot.Lists["List_Name"];

    SPQuery oQuery = new SPQuery();
    oQuery.ViewFields = "<FieldRef Name='Field1'/>" + 
        "<FieldRef Name='Field2'/>";
    oQuery.Query = "<Where><Geq><FieldRef Name='Field2'/>" +
        "<Value Type='Number'>1000</Value></Geq></Where>";
    SPListItemCollection collListItems = oList.GetItems(oQuery);

    foreach (SPListItem oListItem in collListItems)
        Response.Write(SPEncode.HtmlEncode(oListItem.Xml) + "<BR>");

Certain objects implement the IDisposable interface, and you must avoid retaining these objects in memory after they are no longer needed. For information about good coding practices, see Disposing Objects.