/// <devdoc> /// <para> /// Merges this <see cref='System.Data.DataSet'/> into a specified <see cref='System.Data.DataSet'/> preserving changes according to /// the specified argument, and handling an incompatible schema according to the /// specified argument. /// </para> /// </devdoc> public void Merge(DataSet dataSet, bool preserveChanges, MissingSchemaAction missingSchemaAction) { IntPtr hscp; Bid.ScopeEnter(out hscp, "<ds.DataSet.Merge|API> %d#, dataSet=%d, preserveChanges=%d{bool}, missingSchemaAction=%d{ds.MissingSchemaAction}\n", ObjectID, (dataSet != null) ? dataSet.ObjectID : 0, preserveChanges, (int)missingSchemaAction); try { // Argument checks if (dataSet == null) throw ExceptionBuilder.ArgumentNull("dataSet"); switch (missingSchemaAction) { // @perfnote: Enum.IsDefined case MissingSchemaAction.Add: case MissingSchemaAction.Ignore: case MissingSchemaAction.Error: case MissingSchemaAction.AddWithKey: Merger merger = new Merger(this, preserveChanges, missingSchemaAction); merger.MergeDataSet(dataSet); break; default: throw Common.ADP.InvalidMissingSchemaAction(missingSchemaAction); } } finally { Bid.ScopeLeave(ref hscp); } }
/// <summary> /// Merges this <see cref='System.Data.DataSet'/> into a specified <see cref='System.Data.DataSet'/> preserving changes according to /// the specified argument, and handling an incompatible schema according to the /// specified argument. /// </summary> public void Merge(DataSet dataSet, bool preserveChanges, MissingSchemaAction missingSchemaAction) { long logScopeId = DataCommonEventSource.Log.EnterScope("<ds.DataSet.Merge|API> {0}, dataSet={1}, preserveChanges={2}, missingSchemaAction={3}", ObjectID, (dataSet != null) ? dataSet.ObjectID : 0, preserveChanges, missingSchemaAction); try { // Argument checks if (dataSet == null) { throw ExceptionBuilder.ArgumentNull(nameof(dataSet)); } switch (missingSchemaAction) { case MissingSchemaAction.Add: case MissingSchemaAction.Ignore: case MissingSchemaAction.Error: case MissingSchemaAction.AddWithKey: Merger merger = new Merger(this, preserveChanges, missingSchemaAction); merger.MergeDataSet(dataSet); break; default: throw ADP.InvalidMissingSchemaAction(missingSchemaAction); } } finally { DataCommonEventSource.Log.ExitScope(logScopeId); } }