Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: .NET
Expertise: Intermediate
Aug 11, 2009

Determining Merge Errors in a Typed DataSet

Merging typed DataSets can cause a "Merge Constraint" error, which explains the problem, but doesn't help much in solving it. Here's how to find the exact cause of the error:

   //set Constrainsts check to false, so that the merge is fast.
   datasetOne.EnableConstraints = false;
   dbHelper.ExecuteDataSet(datasetOne, "dsOne", "spname");

   //Any error on merge will be caugt below

   //set constrainsts check to true, so that we catch the exact error.
   datasetOne.EnableConstrainst = true;
catch (System.Data.DataException de)
   foreach (DataTable table in datasetOne.Tables)
      foreach (DataRow row in table.GetErrors())
         foreach (DataColumn column in row.GetColumnsInError())
            //loop through each column in the row that has caused the error
            //during the bind and show it.
            string ErrorMessage = string.Format(
               "datasetOne bind failed due to Error : {0}"
               , row.GetColumnError(column));
            DataException dataException = new DataException(ErrorMessage, de);
            throw dataException;
Srinath MS
Thanks for your registration, follow us on our social networks to keep up-to-date