在SharePoint 2010中使用UniqueID进行Caml查询

时间:2012-05-16 06:50:03

标签: sharepoint sharepoint-2010 caml

我目前正在使用SharePoint列表,我想获得一些特定的列表项目。以下Caml查询适用于我,并给了我两个项目。

<Where>
  <In>
    <FieldRef Name='UniqueId' />
    <Values>
      <Value Type='Lookup'>E0D2E6B2-28F5-4225-8DFD-9C1FFCC8A1CQ</Value>
      <Value Type='Lookup'>EDDC5A33-38F9-4A8C-B3A8-1EED0AB98D02</Value>
    </Values>
  </In>
</Where>

当我添加像“test”这样的值时,我收到一个异常。似乎只有当我有一个有效的UniqueId放弃时,查询才会起作用。

如何进行Caml查询以在列表中查找两个以上的UniqueId? (有可能不存在UniqueId。(它们来自单独的数据库)

有人可以帮忙告诉我更多相关信息吗?

2 个答案:

答案 0 :(得分:2)

使用SharePoint的CAML查询构建器。无论构建器中列出的是您可以在SharePoint中查询的有效列。下载SharePoint 2007的构建器here

enter image description here

答案 1 :(得分:0)

只要该值是有效的Guid,那么您可以毫无疑问地做出您的要求。

从您的问题看来,您似乎正在尝试

<Value Type='Lookup'>test</Value>

会给你一个例外。

如果您想尝试使用您知道自己没有的ID,请尝试使用

string.Format("<Value Type='Lookup'>{0}</Value>", new Guid());
// <Value Type='Lookup'>00000000-0000-0000-0000-000000000000</Value>

string.Format("<Value Type='Lookup'>{0}</Value>", Guid.NewGuid());
// <Value Type='Lookup'>eebe4177-29ff-4ece-9daa-2c293fd9aebc</Value>

如果你想尝试使用两个以上的元素,只需在Values元素中插入更多的Value元素。