DataSet.MergeFailed Event

Definition

Occurs when a target and source DataRow have the same primary key value, and EnforceConstraints is set to true.

C#
public event System.Data.MergeFailedEventHandler? MergeFailed;
C#
public event System.Data.MergeFailedEventHandler MergeFailed;
C#
[System.Data.DataSysDescription("DataSetMergeFailedDescr")]
public event System.Data.MergeFailedEventHandler MergeFailed;

Event Type

Attributes

Examples

The following example demonstrates the use of the MergeFailed event.

C#

private static void DemonstrateMergeFailedEvent()
{
    // Create a DataSet with one table containing two columns.
    DataSet dataSet = new DataSet("dataSet");
    DataTable table = new DataTable("Items");

    // Add table to the DataSet.
    dataSet.Tables.Add(table);

    // Add two columns to the DataTable.
    table.Columns.Add("id", typeof(int));
    table.Columns.Add("item", typeof(int));

    // Set the primary key to the first column.
    table.PrimaryKey = new DataColumn[] { table.Columns["id"] };

    // Add MergeFailed event handler for the table.
    dataSet.MergeFailed += new MergeFailedEventHandler(Merge_Failed);

    // Create a second DataTable identical to the first,
    DataTable t2 = table.Clone();

    // Set the primary key of the new table to the second column.
    // This will cause the MergeFailed event to be raised when the
    // table is merged into the DataSet.
    t2.PrimaryKey = new DataColumn[] { t2.Columns["item"] };

    // Merge the table into the DataSet.
    Console.WriteLine("Merging...");
    dataSet.Merge(t2, false, MissingSchemaAction.Add);
}

private static void Merge_Failed(object sender, MergeFailedEventArgs e)
{
    Console.WriteLine("Merge_Failed Event: '{0}'", e.Conflict);
}

Remarks

For more information about how to handle events, see Handling and Raising Events.

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

See also