Sharepoint List : Lists.UpdateListItems Method from C# Code

Lists.UpdateListItems Method is used to add, delete, or update the specified items in a list on the sharepoint site.  

It is part of web service : http://<Site>/_vti_bin/Lists.asmx

Step 1:

Add Web Reference to http://<Site>/_vti_bin/Lists.asmx to C# project

Step 2 :

Build a CAML Query using C# code . Refer the code below :

StringBuilder camlQuery = new StringBuilder();
 camlQuery.Append(“<Method ID=’1′ Cmd=’New’>”);
 camlQuery.Append(string.Format(“<Field Name=ID>{0}</Field>”, “12345”);
 camlQuery.Append(string.Format(“<Field Name=’Name’>{0}</Field>”, “Santosh”));
 camlQuery.Append(string.Format(“<Field Name=’Role’>{0}</Field>”, “Manager”));
 camlQuery.Append(“</Method>”);

Note : Make sure Field Name refers to internal name of the field

Step 3 :

Call UpdateListItem method using the below code :

XmlNode ndReturn;
XmlNode ndUpdateStatus;
string listName = “EmployeeList” ; // Set correct list name to update or insert
list.Url = “https://sharepointserver/_vti_bin/lists.asmx“; //Provide correct url of List Web service
ndReturn = list.GetListAndView(listName, “”);
XmlDocument xmlDocQuery = new System.Xml.XmlDocument();
System.Xml.XmlElement elBatch = xmlDocQuery.CreateElement(“Batch”);
elBatch.SetAttribute(“ListVersion”, “1”);
elBatch.SetAttribute(“ViewName”, ndReturn.ChildNodes[1].Attributes[“Name”].Value);
elBatch.InnerXml = CAMLQuery; // Set the CAMLQuery formed in Step 2
ndUpdateStatus = list.UpdateListItems(ndReturn.ChildNodes[0].Attributes[“Name”].Value, elBatch);
               
Step 4 :

Check whether list was inseted or not using below C# code.
if ( ndUpdateStatus  != null )
{
if (ndUpdateStatus.ChildNodes[0] != null)
                {
                    if (ndUpdateStatus.ChildNodes[0].InnerText == “0x00000000”)
                    {
                        // UpdateListItem success               
                     }
                     else
                    {
                         // UpdateListItem failure
                    }
                }
else
               {
                     // UpdateListItem failure
                }
}
else
{
// UpdateListItem failure
}

Lists.UpdateListItems Method is successful if return from this method has ndUpdateStatus.ChildNodes[0].InnerText == “0x00000000”)

Hope this article is useful for people integrating C# code with Sharepoint List. Please mail me your feedback at : contactus@alltechnicalfaqs.com