¿Como poner un mensaje cuando la fue conexión exitosa o no exitosa en un sistema?

Quiero saber si me pueden ayudar con la siguiente duda, bueno estoy trabajando un sistema con vb.net 2010 y sql server 2008, yo establezco la conexión en un modulo de la siguiente manera.

Imports System
Imports System. Data. SqlClient
Module ConexionFarmaciaLarri
Public conexiones As SqlConnection
Public enunciado As SqlCommand
Public adaptador As SqlDataAdapter
Public Function conexion() As String
' Dim strconexion As String = "Data Source=.;Initial Catalog=FarmaciaLarri; Integrated Security=True"
Dim strconexion As String = "Data Source=192.168.1.10;Initial Catalog=FarmaciaLarri;user id=Administrador;password=1234" ' Integrated Security=True"
Return strconexion
End Function
End Module

esta conexión la mando a llamar en la ventana de inicio de la siguiente manera.

 Public Sub verificar_usuario()
        Dim cmd As New SqlCommand() 'crear nuevo comando'
        cmd.Connection = New SqlConnection(ConexionFarmaciaLarri.conexion) 'establecer la conexion'
        cmd.CommandText = "Inicio_Seccion" 'indicar el nombre del procedimiento'
        cmd.CommandType = CommandType.StoredProcedure 'indicar que el comando es procedimiento almacenado'
        cmd.Parameters.Add("@log", SqlDbType.VarChar, 250)
        cmd.Parameters("@log").Value = txtusuario.Text 'asignar valor al parametro'
        cmd.Parameters.Add("@pass", SqlDbType.VarChar, 250)
        cmd.Parameters("@pass").Value = Encritar.codificarcontraseña(txtcontraseña.Text)
        'cmd.Parameters("@pass").Value = txtcontraseña.Text 'asignar valor al parametro'
        cmd.CommandType = CommandType.StoredProcedure 'indicar que el comando es procedimiento almacenado'
        Dim dr As SqlDataReader 'declara un lector de datos'
        cmd.Connection.Open() 'abre la conexion'
        dr = cmd.ExecuteReader() 'ejecutar el procedimiento y el resultado asignarlo a la variable dr'
        dr.Read()
        If dr.HasRows Then 'verifica que si hay alguna linea afectada por el procedimiento'
            ValidarCaracteres.Rol = dr(3)
            ValidarCaracteres.login = txtusuario.Text
            band = True
            'el login ya existe'
        Else
            band = False
            'el login no fue encontrado'
        End If
        cmd.Connection.Close()
    End Sub

quiero saber como puedo poner ese mensaje para que cuando inicie el sistema me salga si la conexion es exitosa o si no se pudo conectar, y de esta manera evitar que el sistema se caiga ..

Yo intente colocar un try Catch, pero me lanza un error ... Y se cae el sistema.

1 respuesta

Respuesta
1

De nuevo Yk jd !

Supongo que se trata de una aplicación de escritorio por lo que yo haría una clase static (o un "module" en visual basic .net) para toda la aplicación en la que crear y configurar la conexión de forma general y poder controlar los posibles errores:

Public Module ConnectionManager
    Private ReadOnly Conexion As SqlConnection = New SqlConnection("Data Source=192.168.1.10;Initial Catalog=FarmaciaLarri;user id=Administrador;password=1234")
    Public Function ObtenerConexion() As SqlConnection
        If Conexion.State = ConnectionState.Closed Then
            Try
                Conexion.Open()
            Catch ex As Exception
                Throw New Exception("Error al realizar la conexión con base de datos")
            End Try
        End If
        Return Conexion
    End Function
End Module

Así, tan solo usando ConnectionManager.ObtenerConexion() tendremos una SqlConnection abierta y lista para ser usada  nos lanzará una excepción que podremos capturar para mostrar un mensaje al usuario.

Ejemplo:

Public Class Ejemplo
    Public Sub verificar_usuario()
        Try
            Dim cmd As New SqlCommand()
            cmd.Connection = ConnectionManager.ObtenerConexion()
            'Hacemos lo que queremos con el command
            cmd.Connection.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class

Como ves de este modo es muy fácil gestionar los errores además de que tienes una única clase en la que configurar tu connectionString (imagínate que la cambias... así solo tienes que tocarlo en un solo módulo) y puedes gestionar y tratar los errores como quieras.

Hola Yk jd, ¿te fue útil mi respuesta? Si tienes algún problema coméntamelo e intentaré ayudarte y si no recuerda valorar la respuesta :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas