SPList没有更新?(SPList is not updating?)
我正在尝试为用户更新UserInformationList。 它正在正确执行SPListItem.Update()但更新未反映在列表中。 我不明白我在哪里做错了。 我在这附上我的代码。
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; } }}
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; } }}
最满意答案
您可能想要调用UserInfoList.ParentWeb.Update()
You might want to call UserInfoList.ParentWeb.Update()
更多推荐
发布评论