DataSet 提供 MergeFailed 事件,该事件将在所合并的 DataSet 对象的架构发生冲突时引发。例如,如果所合并的表的主键列在两个 DataSet 对象中的表之间有所不同,则将引发异常并引发 MergeFailed 事件。传递给 MergeFailed 事件的 MergeFailedEventArgs 具有 Conflict 属性(它标识两个 DataSet 对象之间的架构冲突)和 Table 属性(它标识发生冲突的表的名称)。

有关使用 DataSet 时可使用的其他事件的信息,请参阅处理 DataTable 事件使用 DataAdapter 事件

以下代码示例将 MergeFailed 事件添加到一个事件处理程序中。

Dim custDS As DataSet = New DataSet

AddHandler workDS.MergeFailed, New MergeFailedEventHandler(AddressOf DataSetMergeFailed)

Private Shared Sub DataSetMergeFailed(sender As Object, args As MergeFailedEventArgs)
  Console.WriteLine("Merge failed for table " & args.Table.TableName)
  Console.WriteLine("Conflict = " & args.Conflict)
End Sub

DataSet custDS = new DataSet();

workDS.MergeFailed += new MergeFailedEventHandler(DataSetMergeFailed);

private static void DataSetMergeFailed(object sender, MergeFailedEventArgs args)
{
  Console.WriteLine("Merge failed for table " + args.Table.TableName);
  Console.WriteLine("Conflict = " + args.Conflict);
}