[List.asmx web reference].Lists mylistService = new [List.asmx web reference].Lists();
XPathNavigator nav = this.CreateNavigator();
// Get Column Values
string strField1 = (string)nav.SelectSingleNode("[xPath to field1]", this.NamespaceManager).ValueAs(typeof(string));
string strField2 = (string)nav.SelectSingleNode("[xPath to field2]", this.NamespaceManager).ValueAs(typeof(string));
string strField3 = (string)nav.SelectSingleNode("[xPath to field3]", this.NamespaceManager).ValueAs(typeof(string));
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlElement elBatch = xmlDoc.CreateElement("Batch");
XmlElement xnQuery = xmlDoc.CreateElement("Query");
string strID;
mylistService.Credentials = System.Net.CredentialCache.DefaultCredentials;
//Build CAML Query
xnQuery.InnerXml = "" +
"" +
strField1 + "" +
"" +
strField2 + "" +
"" +
strField3 + "";
//Query List
XmlNode xmlList = mylistService.GetListItems("[SharePoinit List Name]", "", xnQuery, null, "20000", null, "");
//Get Item ID
strID = xmlList.InnerXml;
int intStart = strID.IndexOf("ows_ID");
string tmpID = strID.Substring(intStart + 8);
int intEnd = tmpID.IndexOf("ows");
strID = tmpID.Substring(0, intEnd - 2);
//Build Batch Command
string strBatch = "" +
"" + strID + "";
elBatch.SetAttribute("OnError", "Continue");
elBatch.InnerXml = strBatch;
XmlNode ndReturn = mylistService.UpdateListItems("[SharePoint List Name]", elBatch);