如何编写CAML查询以使结果包含Column1和Column2?

问题描述 投票:0回答:3

我的下面的代码用于基于ID的过滤:

camlQuery = xmlDoc.CreateElement("Query");

                camlQuery.InnerXml = "<Where><Gt><FieldRef Name='ID'/><Value Type='Number'>0</Value></Gt></Where>";

如何编写CAML查询以使其返回(结果包含)Column1和Column2?

我是CAML查询的新手,也许不可能过滤并说只应返回某些列?

问题是,当我运行上面的查询时,它返回列表中的所有SharePoint列(42),而我只需要2-3。

谢谢,

sharepoint caml
3个回答
0
投票

你必须使用SPQuery.ViewFields属性。


0
投票

SPQuery.Query的MSDN文档提供了一个很好的示例,如何使用Query属性的ViewFields属性和SPQuery属性:

SPList oList = oWebsiteRoot.Lists["List_Name"];
SPQuery oQuery = new SPQuery();
oQuery.ViewFields = "<FieldRef Name='Column1'/><FieldRef Name='Column2'/>";
oQuery.Query = "<Where><Gt><FieldRef Name='ID'/>" + 
               "<Value Type='Number'>0</Value></Gt></Where>";
SPListItemCollection collListItems = oList.GetItems(oQuery);

0
投票

尝试使用以下代码:

    XmlDocument xmlDoc = new System.Xml.XmlDocument();
    XmlElement query = xmlDoc.CreateElement("Query");
    XmlElement viewFields = xmlDoc.CreateElement("ViewFields");
    XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions");

    query.InnerText = "<Where><Gt><FieldRef Name='ID'/><Value Type='Number'>0</Value></Gt></Where>";
    viewFields.InnerXml = "<FieldRef Name=\"Column1\" /><FieldRef Name=\"Column2\" />";
    queryOptions.InnerXml = "";

    try
    {
        XmlNode ndListItems = listService.GetListItems("List_Name", null, query, viewFields, null, queryOptions, null);
    }

供参考:msdn example

© www.soinside.com 2019 - 2024. All rights reserved.