Hi All,
I am having issues when Updating an item field of a list in SharePoint 2013 site from a visual webpart in a different site collection. Posted the code below.
I am the administrator for both the site but I added elevated rights so user can update items.
The problem is when I deploy and run the code there is no error. But the field is not updating.
When I add "itemToUpdate.Update();" after setting the field , I get "Object reference not set to an instance of an object" . I have posted the exception below as well.
Am I missing anything ??? Any help is much appreciated. Thank you in advance.
private void setReviewStatus()
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
string strURL = string.Empty;
int listItemId;
using (SPSite oSPsite = new SPSite("XXXX"))
{
using (SPWeb oSPWeb = oSPsite.OpenWeb())
{
oSPWeb.AllowUnsafeUpdates = true;
// Fetch the List
SPList Employeelist = oSPWeb.Lists["Employee"];
foreach (SPListItem item in Employeelist.Items)
{
try
{
SPFieldUrlValue lnkFieldUrlValueurl = new SPFieldUrlValue(item[EmployeeFieldNameAndReviewStates.strURLField].ToString());
strURL = lnkFieldUrlValueurl.Url.ToString();
}
catch (Exception ex)
{
}
if (!string.IsNullOrEmpty(strURL.ToString()))
{
if (strURL == getCurrentSiteURL())
{
try
{
listItemId = item.ID;
SPListItem itemToUpdate
= Employeelist.GetItemById(listItemId);
itemToUpdate["Employee
Number"] = "458XXX8687";
Employeelist.Update();
oSPWeb.AllowUnsafeUpdates
= false;
}
catch (SPAlertUpdateException ex)
{
}
break;
}
}
}
}
}
});
}
Microsoft.SharePoint.SPException was unhandled by user code
HResult=-XXX
Message=Object reference not set to an instance of an object.
Source=Microsoft.SharePoint
ErrorCode=-XXX
NativeErrorMessage=FAILED hr detected (hr = XXX)
NativeStackTrace=""
StackTrace:
at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bPreserveItemUIVersion, Boolean bUpdateNoVersion,
Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bUnRestrictedUpdateInProgress,
Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)
at Microsoft.SharePoint.SPListItem.AddOrUpdateItem(Boolean bAdd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, Guid newGuidOnAdd,
Int32& ulID, Object& objAttachmentNames, Object& objAttachmentContents, Boolean suppressAfterEvents, String filename, Boolean bPreserveItemUIVersion)
at Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents,
String filename, Boolean bPreserveItemUIVersion)
at Microsoft.SharePoint.SPListItem.Update()
at VWPStates.KRAWebPart.KRAWebPart.<setReviewStatus>b__0()
at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
InnerException: System.Runtime.InteropServices.COMException
HResult=XXX
Message=<nativehr>XXX</nativehr><nativestack></nativestack>Object reference not set to an instance of an object.
Source=""
ErrorCode=-XXX
StackTrace:
at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bPreserveItemUIVersion,
Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin,
Boolean bUnRestrictedUpdateInProgress, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)
at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bPreserveItemUIVersion,
Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin,
Boolean bUnRestrictedUpdateInProgress, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)
InnerException: