public void Merge(DataTable table, bool preserveChanges, MissingSchemaAction missingSchemaAction)
{
IntPtr hscp;
Bid.ScopeEnter(out hscp, "<ds.DataTable.Merge|API> %d#, table=%d, preserveChanges=%d{bool}, missingSchemaAction=%d{ds.MissingSchemaAction}\n", ObjectID, (table != null) ? table.ObjectID : 0, preserveChanges, (int)missingSchemaAction);
try{
if (table == null)
throw ExceptionBuilder.ArgumentNull("table");
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.MergeTable(table);
break;
default:
throw Common.ADP.InvalidMissingSchemaAction(missingSchemaAction);
}
}
finally{
Bid.ScopeLeave(ref hscp);
}
}