2016-12-12 6 views
1

Я хочу обновить список SharePoint с данными данных на основе идентификатора билета, т. Е. Если идентификатор билета уже находится в списке, я хочу обновить другие поля или добавить новый элемент в списке SharePoint.Синхронизировать элементы списка SharePoint с строками данных CSOM

Я пробовал приведенный ниже код. Ежемесячный платеж:

using (ClientContext context = new ClientContext("https://example.com/list")) 

     { 
      SecureString passWord = new SecureString(); 

      foreach (char c in "xxxxxx".ToCharArray()) passWord.AppendChar(c); 
      context.Credentials = new SharePointOnlineCredentials("[email protected]", passWord); 
      context.Load(context.Web); 
      context.ExecuteQuery(); 
      List oList = context.Web.Lists.GetByTitle("list"); 

      foreach (DataRow dr in dt.Rows) //my datatable is loaded 
      { 
       // Console.WriteLine(dr); 
       ListItemCreationInformation listCreationInformation = new ListItemCreationInformation(); 
       ListItem oListItem = fusoList.AddItem(listCreationInformation); 
       context.Load(oListItem); 
       CamlQuery listquery = CamlQuery.CreateAllItemsQuery(1000); 
       var items = oList.GetItems(listquery); 
       context.Load(items); 
       //context.ExecuteQuery(); 
       foreach (ListItem oItem in items) 
       { 
        //context.Load(oItem); 
        if (oItem["Ticket_x002d_ID"] == dr["Ticket-ID"]) 
        { 
         oItem["Title"] = dr["Short Description+"]; 
         oItem["Assigned_x0020_To_x0020_Group"] = dr["Assigned To Group"]; 
         //oItem["Ticket_x002d_ID"] = dr["Ticket-ID"]; 
         oItem["Lastname"] = dr["Lastname+"]; 
         oItem["Assigned_x0020_To_x0020_Individu"] = dr["Assigned To Individual"]; 
         oItem["Priority"] = dr["Priority"]; 
         oItem["Ticket_x002d_Type"] = dr["Ticket-Typ"]; 
         oItem["Department"] = dr["Department"]; 
         oItem["Status"] = dr["Status"]; 
         oItem["Modification_x0020_Date"] = dr["Modification Date"]; 
         oItem["StatusAttribute"] = dr["StatusAttribute"]; 
         oItem["Creation_x0020_Date"] = dr["Creation Date"]; 
         oItem["Firstname"] = dr["Firstname+"]; 
         oItem["Remark"] = dr["Remark 2"]; 
         oItem.Update(); 
        } 
        else 
        { 
         oListItem["Title"] = dr["Short Description+"]; 
         oListItem["Assigned_x0020_To_x0020_Group"] = dr["Assigned To Group"]; 
         oListItem["Ticket_x002d_ID"] = dr["Ticket-ID"]; 
         oListItem["Lastname"] = dr["Lastname+"]; 
         oListItem["Assigned_x0020_To_x0020_Individu"] = dr["Assigned To Individual"]; 
         oListItem["Priority"] = dr["Priority"]; 
         oListItem["Ticket_x002d_Type"] = dr["Ticket-Typ"]; 
         oListItem["Department"] = dr["Department"]; 
         oListItem["Status"] = dr["Status"]; 
         oListItem["Modification_x0020_Date"] = dr["Modification Date"]; 
         oListItem["StatusAttribute"] = dr["StatusAttribute"]; 
         oListItem["Creation_x0020_Date"] = dr["Creation Date"]; 
         oListItem["Firstname"] = dr["Firstname+"]; 
         oListItem["Remark"] = dr["Remark 2"]; 
         oListItem.Update(); 
        } 
       } 
       context.ExecuteQuery(); 
      } 
      context.ExecuteQuery(); 

     } 

    } 

Может ли кто-нибудь помочь мне в достижении этой цели?

ответ

0

Это commans неправильно:

ListItem oListItem = fusoList.AddItem(listCreationInformation); 

я думаю, что нужно для вставки:

ListItem oListItem = oList.AddItem(listCreationInformation); 

, но до сих пор не уверен, что это эффективный способ сделать это ..