Hi,
I am using the ProcessBatchData to insert multiple records.
In the Batch XML, I have added "OnError = continue".
I am using the below code:
private readonly string BatchXMLBanner ="<?xml version=\"1.0\" encoding=\"UTF-8\"?><ows:Batch OnError=\"Continue\">{0}</ows:Batch>";
private readonly string BatchXMLMethod =
"<Method ID=\"{0}\"><SetList>{1}</SetList><SetVar Name=\"ID\">New</SetVar><SetVar Name=\"Cmd\">Save</SetVar>{2}</Method>";
private readonly string BatchXMLSetVar ="<SetVar Name=\"urn:schemas-microsoft-com:office:office#{0}\">{1}</SetVar>";
string Batch = buildBatch(dt, listID);
string BatchReturn = oWeb.ProcessBatchData(Batch);
private string buildBatch(DataTable dataTable, Guid guid)
{
StringBuilder XMLSetVarLines = new StringBuilder();
StringBuilder XMLSetMethods = new StringBuilder();
int methodID = 0;
foreach (DataRow row in dataTable.Rows)
{
foreach (DataColumn column in dataTable.Columns)
{
var fieldname = column.ColumnName;
if (row[fieldname] != null)
{
if (!string.IsNullOrEmpty(row[fieldname].ToString()))
{
var fieldvalue = row[fieldname].ToString().Replace("&", "&");
XMLSetVarLines.Append(String.Format(BatchXMLSetVar, fieldname, fieldvalue));
}
}
}
XMLSetMethods.Append(String.Format(BatchXMLMethod, methodID, guid, XMLSetVarLines));
methodID++;
XMLSetVarLines.Length = 0;
}
return (String.Format(BatchXMLBanner, XMLSetMethods));
}In the resultant xml, I get the below:
<Results><Result ID="0" Code="-2130575332"><ErrorText>Invalid date/time value. A date/time field contains invalid data. Please check the value and try again.</ErrorText></Result> ...</Results>
After the batchdata is processed, how to identify how many rows failed and how to show that in datatable?
Thanks