ARTICLE

Working with DataSet Events in ADO.NET

Posted by Mahesh Chand Articles | ADO.NET in C# February 21, 2010
In this article I will explain working with DataSet Events in ADO.NET.
Reader Level:
 

This article has been excerpted from book "A Programmer's Guide to ADO.NET in C#".

A dataset has a MergeFailed event that occurs when merging two datasets fails. MergeFailedEventHandler handles the MergeFailed event, which receives an argument of type MergeFailedEventArges that contains data related to this event. The MergeFailedEventHandler is as follows:

    
public delegate void MergeFailedEventHandler(object sender, MergeFailedEventArgs e);


Where sender is the source of the event and e is the MergeFailedEventArgs abject that contains the event data.

The MergeFailedEventArgs has Conflict and Table properties. The Conflict property returns a description of the merge conflict, and the Table property returns the name of the data table. Listing 9-7 shows an example of the MergeFailed event handler. As you can see, the MergeFailedBtn_Click method creates a connection and a data adapter and then fills a dataset using the Fill method of the data adapter. After that the code creates a second dataset, calls the Fill method to fill it, and then calls the Merge method of the dataset.

Listing 9-7. Writing code to call the MergeFailed event handler


using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
using
System.Data.SqlClient;
using
System.Data.OleDb;

namespace
Handling_ADO.NET_Events
{

   
public partial class Form1 :
Form
    {
       
public Form1()
        {
            InitializeComponent();
        }

       
private void MergeFailedBtn_Click(object sender, System.EventArgs e)
        {
           
OleDbConnection conn = new OleDbConnection();
           
string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;" +
           
"Data Source=C:\\Northwind.mdb";

            conn.ConnectionString = strDSN;

            conn.Open();

           
string sql = "SELECT * FROM Employees";

           
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
           
DataSet ds1 = new DataSet("ds1");

            da.Fill(ds1);

            sql =
"SELECT * FROM Customers";

            da =
new OleDbDataAdapter(sql, conn);

           
DataSet ds2 = new DataSet("ds2");

            da.Fill(ds2);

            ds1.MergeFailed +=
new
MergeFailedEventHandler(OnMergeFailed);
            ds1.Merge(ds2);
        }

       
protected static void OnMergeFailed(object sender, MergeFailedEventArgs args)
        {
           
MessageBox.Show(args.Conflict.ToString());
        }
    }


Conclusion

Hope this article would have helped you in understanding working with DataSet Events in ADO.NET. See other articles on the website also for further reference.

adobook.jpg
This essential guide to Microsoft's ADO.NET overviews C#, then leads you toward deeper understanding of ADO.NET.

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter