lunedì 10 novembre 2008

Ado.Net, rilevare lo stato della connessione al database Sql Server (VB.Net e C#)

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: