我想做的事情看起来很简单,我有一个应用程序可以通过 SharePoint Services 与某些 SharePoint (MOSS 2007) 列表进行交互。在一次服务调用中,我想更新一个或多个列表项。问题是我只想更新那些要更新的字段等于旧值的项目。我的想法是使用 Lists.UpdateListItems 并过滤然后更新,但我一直无法找到它的语法。
伪:将 [ListA] 中所有项目的 [Name] 更新为“NewName”,其中 [Name] = “OldName”
我想避免的一种解决方案是:获取所有 ListItems 的 ID,其中 Name="OldName"并遍历它们,为每个 ListItem 进行单独的服务调用以更新 Name="NewName"。
我无法引用 Microsoft.SharePoint 程序集,因此理想情况下这是在一个服务调用中。
最佳答案
您必须进行2次调用,一次用于检索匹配项,一次用于进行更新。
这可能相当复杂,所以我在这里写了一篇关于它的博文(包括必要的代码):http://www.wirebear.com/blog/2011/02/11/batch-updates-with-sharepoint-2007-services/
关于c# - SharePoint Lists.asmx UpdateListItems SET Field1=NewValue WHERE Field1=OldValue(按要更新的字段过滤),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973909/