public void Merge(Database otherDatabase, string errorTable) { if (otherDatabase == null) { throw new ArgumentNullException("otherDatabase"); } uint ret = NativeMethods.MsiDatabaseMerge((int)this.Handle, (int)otherDatabase.Handle, errorTable); if (ret != 0) { if (ret == (uint)NativeMethods.Error.FUNCTION_FAILED) { throw new MergeException(this, errorTable); } else if (ret == (uint)NativeMethods.Error.DATATYPE_MISMATCH) { throw new MergeException("Schema difference between the two databases."); } else { throw InstallerException.ExceptionFromReturnCode(ret); } } }