本文介绍了更新SharePoint列表项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了以下错误...

I got following error...

System.NullReferenceException:对象不设置到对象的实例。
  在Microsoft.SharePoint.SPListItem.get_UniqueId()
  在ConsoleApplication1.Program.Main(字串[] args)在Program.cs中:第21行

运行以下code

using (SPSite site = new SPSite("http://site/"))
{
    using (SPWeb web = site.OpenWeb())
    {
        try
        {
            SPList list = web.Lists["ListName"]; // 2
            SPListItem item = list.Items.Add();
            Guid itemId = item.UniqueId;
            SPListItem itemUpdate = web.Lists["ListName"].Items[itemId];
            itemUpdate["PercentComplete"] = .45; // 45%
            itemUpdate.Update();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            Console.ReadLine();

        }
    }
}

这是什么问题?

推荐答案

如果你想改变一个刚插入列表项的值,你应该去:

If you're trying to alter values for a just inserted list item, you should go with:

SPList list = web.Lists["ListName"];
//SPListItem item = list.Items.Add();
//item["PercentComplete"] = .45; // 45%
//item.Update();

SPListItemCollection items = list.GetItems(new SPQuery()
{
    Query = @"<Where>
                <Eq>
                   <FieldRef Name='Title' />
                   <Value Type='Text'>Desigining</Value>
                </Eq>
              </Where>"
});

foreach (SPListItem item in items)
{
    item["PercentComplete"] = .45; // 45%
    item.Update();
}

您只需要使用 list.Items [UNIQUEID] 或更快 list.GetItemByUniqueId(唯一ID)如果您需要找到一个特定的项目进行更新;有什么可以利用来完成 SPQuery 类。

You just need to use list.Items[uniqueId] or faster list.GetItemByUniqueId(uniqueId) if you needs to find a particular item to update; what can be accomplished by using SPQuery class.

这篇关于更新SharePoint列表项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 18:30