SharePoint更新列表项

时间:2019-06-27 18:46:42

标签: c# sharepoint

我正在尝试更新SharePoint列表,我在Internet上找到了一个代码示例(正式的Microsoft文档) 这是代码:

using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointServices.Samples
{
    class UpdateListItem
    {
        static void Main()
        {   
            string siteUrl = "http://MyServer/sites/MySiteCollection";

            ClientContext clientContext = new ClientContext(siteUrl);
            SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");
            ListItem oListItem = oList.Items.GetById(3);

            oListItem["Title"] = "My Updated Title.";

            oListItem.Update();

            clientContext.ExecuteQuery(); 
        }
    }
}

如果我在Visual Studio中复制/粘贴此代码, 我在此行有一个错误:

ListItem oListItem = oList.Items.GetById(3);

列表不包含项的定义,并且找不到可访问的扩展方法“接受类型为“列表”的第一个参数”

使用该代码需要做什么吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您提供的用于更新列表项的代码适用于SharePoint 2010。对于较新的版本,请尝试

ListItem oListItem = oList.GetItemById(3);

// Starting with ClientContext, the constructor requires a URL to the 
// server running SharePoint. 
ClientContext context = new ClientContext("http://SiteUrl"); 

// Assume that the web has a list named "Announcements". 
List announcementsList = context.Web.Lists.GetByTitle("Announcements"); 

// Assume there is a list item with ID=1. 
ListItem listItem = announcementsList.GetItemById(1); 

// Write a new value to the Body field of the Announcement item.
listItem["Body"] = "This is my new value!!"; 
listItem.Update(); 

context.ExecuteQuery();