[英]Update Sharepoint List Item
我收到了以下錯誤...
System.NullReferenceException:未將對象引用設置為對象的實例。 在Program.cs中的ConsoleApplication1.Program.Main(String [] args)的Microsoft.SharePoint.SPListItem.get_UniqueId()處:第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
類可以實現什么。
魯本的答案是正確的但是得到的錯誤很少(可能只是對我來說)因此我調整了一點,然后它工作正常。 下面是我使用的代碼,如果有人需要它
SPList list = web.Lists["ListName"];
//SPListItem item = list.Items.Add();
//item["PercentComplete"] = .45;
// 45%//item.Update();
SPQuery oQuery = new SPQuery();
oQuery.Query = @"<Where>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>Design</Value>
</Eq>
</Where>";
SPListItemCollection collListItems = list.GetItems(oQuery);
foreach (SPListItem item in collListItems)
{ item["PercentComplete"] = .55;
item.Update();}
嘗試在獲取UniqueID之前調用列表上的Update()
SPList list = web.Lists["ListName"]; // 2
SPListItem item = list.Items.Add();
item["Title"] = "Test";
item.Update ();
list.Update ();
Guid itemId = item.UniqueId;
我最好的問題是當您執行以下操作時,您的項目尚未在列表中創建:
Guid itemId = item.UniqueId;
SPListItem itemUpdate = web.Lists["ListName"].Items[itemId];
首先在請求uniqueId和/或從列表中獲取項目之前執行item.Update()。
PS:我認為你沒有理由得到第二個SPItem對象來更新'PercentComplete'信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.