Il blog di Emanuele Mattei in ambito Database

Programmazione database, ado.net e database mobile

Blog

Siti

Siti Sql Server

Siti vari

Tools

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();

}

Posted: ott 03 2008, 11.53 by EmanueleM | with no comments
Filed under: