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:
try{ //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 datasetOne.Merge(datasetTwo); //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; } } }}