none
us adecuado del try end try RRS feed

  • Pregunta

  • Public Sub Insertar_Registro()
    
            'If txtnumestudiante.Text.Trim = String.Empty Or txtnombre.Text.Trim = String.Empty Then Return
    
            Using cnn As New SqlConnection(configuracion.ConnectionString)
                Using cmd As New SqlCommand("SP_INSERTAR_ESTUDIANTE", cnn)
                    cmd.CommandType = CommandType.StoredProcedure
                    With cmd
                        .Parameters.AddWithValue("@Id_Estudiante", txtidvisitante.Text)
                                            .Parameters.AddWithValue("@Apellido_Paterno", txtapellidopaterno.Text)
                        .Parameters.AddWithValue("@Apellido_Materno", txtapellidomaterno.Text)
                        .Parameters.AddWithValue("@Nombre", txtnombre.Text)
                        .Parameters.AddWithValue("@Inicial", txtinicial.Text)
                        .Parameters.AddWithValue("@Sexo", cbosexo.Text)
                                                                    
    
                     End With
                    Try
                        cnn.Open()
                        cmd.ExecuteNonQuery()
                    Catch ex As Exception
                        MessageBox.Show(ex.Message)
                    End Try
                End Using
            End Using
            MsgBox("Registro Insertado Correctamente", vbArchive, "Ingreso")
        End Sub
    

    lo que quiero es que si el Bloque Try me tira una excepcion no se pueda ejecutar el codigo

    MsgBox("Registro Insertado Correctamente", vbArchive, "Ingreso")

    por que como esta ahora mismo aunque me salte una excepcion del bloque try catch como quiera se ejecuta esa instruccion

    miércoles, 27 de junio de 2018 18:47

Respuestas

  • "Efrain Diaz" escribió:

    > lo que quiero es que si el Bloque Try me tira una excepcion no se pueda ejecutar el codigo
    >
    >   MsgBox("Registro Insertado Correctamente", vbArchive, "Ingreso")
    >
    > por que como esta ahora mismo aunque me salte una excepcion del bloque try catch como
    > quiera se ejecuta esa instruccion

    Hola, Efrain:

    Para el caso concreto que comentas, ese MsgBox lo tienes que colocar inmediatamente después de que se ejecute el método ExecuteNonQuery, que es la última instrucción que se ejecuta en el bloque Try:

        Try
            cnn.Open()
            cmd.ExecuteNonQuery()
            MsgBox("Registro Insertado Correctamente", vbArchive, "Ingreso")
        
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        
        End Try

    De esta manera, únicamente se mostrará el mensaje si no se ha producido una excepción, bien en el método Open o en el método ExecuteNonQuery.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    miércoles, 27 de junio de 2018 19:50
    Moderador