Questo esempio di codice, illustra una tecnica, di come creare una funzione di evento, per gestire il cambiamento di stato, della classe connessione (Sqlconnection) per il database Sql server.
La classe SqlConnection, ha un evento, denominato StateChange, il quale ci permette di sapere il cambiamento di stato, della connessione al database.
Questo esempio, illustra il suo utilizzo.
Creare una funzione di evento, nella quale visualizziamo un messaggio a video, per indicare lo stato precedente al cambiamento e quello attuale.
VB.Net
'Evento per il cambio di stato della connessione
Private Sub ConDati_CambiaStato(ByVal sender As Object, ByVal e As StateChangeEventArgs)
MessageBox.Show("Origine: " & e.OriginalState & " attuale: " & e.CurrentState)
End Sub
C#
//Evento per il cambio di stato della connessione
void ConDati_CambiaStato(object sender, StateChangeEventArgs e)
{
MessageBox.Show("Origine: "+ e.OriginalState + " attuale: " + e.CurrentState);
}
A questo punto, nel codice in cui si effettua la connessione, dobbiamo aggiungere un gestore di evento, ossia assegnare all'evento StateChanged, la nostra funzione evento.
VB.Net
Dim con As String = "Persist Security Info=False;Integrated Security=true;Initial Catalog=test;server=(local)"
Using ConDati As New SqlConnection(con)
Try
ConDati.Open()
'Creo un gestore di evento per il cambio di stato
AddHandler ConDati.StateChange, AddressOf ConDati_CambiaStato
'codice
Catch exdb As SqlException
MessageBox.Show("Errore:" & exdb.Message)
Return
Catch ex As Exception
MessageBox.Show("ERrore:" & ex.Message)
Return
End Try
ConDati.Close()
End Using
C#
string con = "Persist Security Info=False;Integrated Security=true;Initial Catalog=test;server=(local)";
using (SqlConnection ConDati = new SqlConnection(con))
//Creo un gestore di evento per il cambio di stato
{
ConDati.StateChange += new StateChangeEventHandler(ConDati_CambiaStato);
try
{
ConDati.Open();
//Codice
}
catch (SqlException exdb)
{
MessageBox.Show("Errore:" + exdb.Message);
return;
}
catch (Exception ex)
{
MessageBox.Show("Errore: " + ex.Message);
return;
}
ConDati.Close();
}
Nessun commento:
Posta un commento