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 Property Query As String
Dim instance As SPQuery
Dim value As String

value = instance.Query

instance.Query = value
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.



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.

Dim webSite As SPWeb = SPContext.Current.Site.RootWeb
    Dim list As SPList = webSite.Lists("List_Name")

    Dim query As New SPQuery()
    query.ViewFields = "<FieldRef Name='Field1'/>" + _
        "<FieldRef Name='Field2'/>"
    query.Query = "<Where><Geq><FieldRef Name='Field2'/>" + _
        "<Value Type='Number'>1000</Value></Geq></Where>"
    Dim items As SPListItemCollection = list.GetItems(query)

    Dim item As SPListItem
    For Each item In  items
        Response.Write((SPEncode.HtmlEncode(item.Xml) + "<BR>"))
    Next item
End Try
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.

See Also


SPQuery Class

SPQuery Members

Microsoft.SharePoint Namespace