Thursday, 27 June 2013

Handling Connection Events In ADO.NET

Handling Connection Events
Both the OLE DB and the SQL Server Connection objects provide two events:
1)StateChange
2)InfoMessage.
1)StateChange
the StateChange event fires whenever the state of the Connection object changes. The event passes a StateChangeEventArgs to its handler, which, inturn, has two properties: OriginalState and CurrentState. The possible values for
OriginalState and CurrentState are:
Connection States Meaning
Broken
TheConnecton is open, but not functional. It maybe closed and reopened
ClosedThe Connection is closed
Connecting
The Connection is in the process of connecting, but has not yet been
ExecutingExecuting the command
FetchingRetrieving the data
OpenOpen the connection

To display the previous and current Connection states for each of the two Connection objects: Select OleDbConnection1 in the Class Name combobox of the editor and the StateChange event in the Method Name combobox.


private void oleDbConnection1_StateChange (object sender,StateChangeEventArgs e)
 {
string s;
 s = "The Connection State is changing from " + e.OriginalState.ToString() +
 " to " + e.CurrentState.ToString();
 MessageBox.Show(s);
 }
 private void SqlDbConnection1_StateChange (object sender, StateChangeEventArgs e)
 {
 string s1;
 s1 = "The Connection State is changing from " +
 e.OriginalState.ToString() +
 " to " + e.CurrentState.ToString();
 MessageBox.Show(s1);
}

Add the code to connect the event handlers to the:-
ConnectionProperties sub:
 this.oleDbConnection1.StateChange += newSystem.Data.StateChangeEventHandler(this.oleDbConnection1_StateChange);
this.SqlDbConnection1.StateChange += new System.Data.StateChangeEventHandler(this.SqlDbConnection1_StateChange);
. Save and run the program. Change the Connection Type and then click the Test button.
The application displays two MessageBoxes as the Connection is opened and closed.

2)InfoMessage

The InfoMessage event is triggered when the data source returns warnings. The information passed to the event handler depends on the Data Provider.

No comments: