DataSet.MergeFailed Event

Definition

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

public:
 event System::Data::MergeFailedEventHandler ^ MergeFailed;
public event System.Data.MergeFailedEventHandler? MergeFailed;
public event System.Data.MergeFailedEventHandler MergeFailed;
[System.Data.DataSysDescription("DataSetMergeFailedDescr")]
public event System.Data.MergeFailedEventHandler MergeFailed;
member this.MergeFailed : System.Data.MergeFailedEventHandler 
[<System.Data.DataSysDescription("DataSetMergeFailedDescr")>]
member this.MergeFailed : System.Data.MergeFailedEventHandler 
Public Custom Event MergeFailed As MergeFailedEventHandler 

Event Type

Attributes

Examples

The following example demonstrates the use of the MergeFailed event.


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);
}

Private Shared Sub DemonstrateMergeFailedEvent()
    ' Create a DataSet with one table containing two columns.
    Dim dataSet As New DataSet("dataSet")
    Dim table As New DataTable("Items")
    
    ' Add table to the DataSet.
    dataSet.Tables.Add(table)

    ' Add two columns to the DataTable.
    table.Columns.Add("id", Type.GetType("System.Int32"))
    table.Columns.Add("item", Type.GetType("System.Int32"))

    ' Set the primary key to the first column.
    table.PrimaryKey = new DataColumn() { table.Columns("id") }

    ' Add MergeFailed event handler for the table.
    AddHandler dataSet.MergeFailed, _
        New MergeFailedEventHandler(AddressOf Merge_Failed)

    ' Create a second DataTable identical to the first, 
    Dim t2 As DataTable = 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 table into the DataSet.
    Console.WriteLine("Merging...")
    dataSet.Merge(t2, false, MissingSchemaAction.Add)
End Sub

Private Shared Sub Merge_Failed(sender As object, _
    e As MergeFailedEventArgs)
    Console.WriteLine("Merge_Failed Event: '{0}'", e.Conflict)
End Sub

Remarks

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

Applies to

See also