我遇到以下错误...
System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.SharePoint.SPListItem.get_UniqueId() at ConsoleApplication1.Program.Main(String[] args) in Program.cs:line 21
运行以下代码
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();
}
}
}
有什么问题?
最佳答案
如果您尝试更改刚刚插入的列表项的值,您应该:
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(uniqueId)
;使用 SPQuery
类可以完成什么。
关于c# - 更新 Sharepoint 列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1578361/