SharePoint:检查列表中是否存在项目,最小开销

时间:2009-08-27 11:23:45

标签: sharepoint

如何检查列表是否包含项目...真的只对检查1个字段感兴趣,而不是检查列表中的每个字段。

如何以最有效的方式完成,创建一个SPListItemCollection并通过它来检查唯一值是否真的会使cpu使用变得平坦......当然必须有一种方法可以做到这一点而不需要通过每个列表中的项目?

1 个答案:

答案 0 :(得分:11)

这是来自Waldek Mastykarz的好comparison of techniques

一般规则是使用SPQuery。有关详细信息,请参阅SharePointDevWiki。这是一个基本的例子:

SPList list = SPContext.Current.Web.Lists["Some List"];
SPQuery query = new SPQuery();
query.Query = @"
    <Where>
        <Eq>
            <FieldRef Name='SomeField' />
            <Value Type='Text'>Value To Match</Value>
        </Eq>
    </Where>";
SPListItemCollection found = list.GetItems(query);
if (found.Count > 0)
{
    // Do something
}

关于SPQuery的一些注释:

  • 如果您的查询错误,则可以返回所有答案,而不是提供错误
  • 如果您的查询错误,有时可能会产生无用/误导性错误
  • 确保您获得正确的值类型

使用U2U CAML Builder(WindowsWeb版本的工具 - Web更好的恕我直言)或Stramit CAML Viewer来构建并测试,可以省去很多麻烦您的疑问。