I am trying to update UserInformationList for the user. It is executing SPListItem.Update() properly but update was not reflect in the list. I don't understand where I am doing mistake. I attaching my code here.
private bool SyncingProcess(SqlDataReader d, SPList UserInfoList)
{
bool result =false;
try
{ //-->
SPListItem UILUser = null;
// Build a query.
SPQuery query = new SPQuery();
query.Query = string.Concat( "<Where><Eq>","<FieldRef Name='Name'/>",
"<Value Type='Text'>" +(d.IsDBNull(accountIDPOS) == false
? d.GetString(accountIDPOS)
: "information not found") + "</Value>",
"</Eq></Where>");
query.ViewFields = string.Concat("<FieldRef Name='FirstName' />","<FieldRef Name='LastName' />",
"<FieldRef Name='Email' />","<FieldRef Name='FullName' />","<FieldRef Name='Title' />",
"<FieldRef Name='JobTitle' />");
SPListItemCollection userInfoListitems = UserInfoList.GetItems(query);
if (userInfoListitems != null && userInfoListitems.Count > 0)
{
UILUser = userInfoListitems[0];
SPUser user1 = UILUser.Web.EnsureUser("aspnetsqlmembershipprovider:" + d.GetString(accountIDPOS));
if (UILUser != null)
{
UILUser["FirstName"] = (d.IsDBNull(FIRSTNAMEPOS) == false ? d.GetString(FIRSTNAMEPOS) : "");
UILUser["LastName"] = (d.IsDBNull(LASTNAMEPOS) == false ? d.GetString(LASTNAMEPOS) : "");
UILUser["Title"] = (d.IsDBNull(FULLNAMEPOS) == false ? d.GetString(FULLNAMEPOS) : "");
UILUser["EMail"] = (d.IsDBNull(EMAIL_ADDRESSPOS) == false? d.GetString(EMAIL_ADDRESSPOS): "");
UILUser["JobTitle"] = (d.IsDBNull(TITLEPOS) == false ? d.GetString(TITLEPOS) : "");
UILUser.Update();;
UserInfoList.Update();
}
result =true;
}
else
{
tw.WriteLine("User not found in the " + UserInfoList.ParentWeb.Title.ToString() + " Site " +
(d.IsDBNull(FIRSTNAMEPOS) == false
? d.GetString(FIRSTNAMEPOS) + "; " + d.GetString(accountIDPOS)
: "information not found"));
tw.Flush();
}
}
catch (Exception)
{
result =false;
}
return result;
}
}
}
You might want to call UserInfoList.ParentWeb.Update()