2011-11-17 92 views
1

我正在嘗試爲用戶更新UserInformationList。它正確執行SPListItem.Update(),但更新未反映在列表中。我不明白我在做什麼錯誤。我在這裏附上我的代碼。SPList沒有更新?

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; 
    } 
} 

}

回答

0

您可能需要調用UserInfoList.ParentWeb.Update()

+0

都能跟得上我想這一點。它不起作用。 – James123