【问题标题】:How to Create a CAML Query to Retrieve a List Item?如何创建 CAML 查询以检索列表项?
【发布时间】:2011-11-22 12:22:35
【问题描述】:
XmlElement camlQuery = Build(); // how to implement this?

我有一个名为 Authors 的 SharePoint list,它有一个 genericId 字段。

如何为以下内容编写 CAML 查询:

Select Name from Authors where genericId = 1

然后将 camlQuery 传递给 ListItems 共享点 Web 服务:

http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems(v=office.12).aspx

我尝试的是创建一个 xml 元素,如下所示:

 XmlDocument xmlDoc = new XmlDocument();

 XmlElement camlQuery = xmlDoc.CreateElement("Query");

 camlQuery.InnerXml = "<Where><Lt><FieldRef Name='genericId'/><Value Type='Integer'>9</Value></Lt></Where>";

然后这被传递给GetListItems()服务(不知道Lt或Gt等是什么意思?)。

但它会抛出异常:

Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.

非常感谢,

【问题讨论】:

  • 您需要深入研究异常以找到将为您/我们提供有关问题所在的更多信息的 ninner 异常。我认为 lt 和 gt 是大于和小于的运算符

标签: c# sharepoint caml


【解决方案1】:

我认为教你如何“自己”写它会很好,而不是仅仅给你正确的答案。

我假设您在当地有一个农场。在共享点列表中创建一个视图,并使用过滤器使其返回正确的结果。然后下载此工具http://spm.codeplex.com/ 并导航到您的视图。然后将 CAML OF A VIEW 复制并粘贴到您的代码中。就是这样。

附: LT 代表小于,GT 代表大于。在您的情况下,您将需要 Eq(等于)。

祝你好运。

【讨论】:

    【解决方案2】:

    您可以使用
    U2U CAML Query Builder for SharePoint 2003 and SharePoint 2007
    创建 CAML 查询,
    U2U CAML Query Builder Feature -
    或者您可以使用 LINQ to SharePoint 作为替代方案(如果您有 SharePoint 2010)

    【讨论】:

      【解决方案3】:

      检查这种方法很容易创建caml查询甚至运行查询:Link

      cawl_QueryBuilder cawl = new cawl_QueryBuilder;
      cawl.Where("FirstName","=","Mike");
      cawl.Where("Status","!=","Passive");
      cawl.Get("Users");
      
      Gridview1.Datasource= cawl.ListItemCollection().GetDataTable();
      Gridview1.Databind();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-03
        • 2011-11-26
        相关资源
        最近更新 更多