Visual Basic.NET - Saber Exceptión

 
Vista:

Saber Exceptión

Publicado por Miguel Ángel (20 intervenciones) el 18/07/2019 01:16:50
Hola !!! Por favor, me gustaría saber como saber que error (Exception) se produce, para así poder actuar en consecuencia.
En el siguiente código, intento que si el usuario ha ingresado en tu textBox un valor nulo, me lo detecte y me lance mi MsgBox con mi mensaje personalizado, y lo mismo con una clave duplicada en un textBox que ambos están vinculados a una base de datos.
Muchísimas gracias !!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub TrabajadoresBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrabajadoresBindingNavigatorSaveItem.Click
    Try ' Controlo el error al salvar un item
        Me.Validate()
        Me.TrabajadoresBindingSource.EndEdit()
        Me.TrabajadoresTableAdapter.Update(Me.RegistrosDataSet.Trabajadores)
    Catch Ex As Exception
        MsgBox(Ex.Message, MsgBoxStyle.Critical, "Error producido")
    >>>>>>> ' LO QUE SIGUE Esto es lo que yo quisiera :-(   <<<<<<<<<
    If DNITextBox.Text = "" Then '>>>>>>> o Catch Ex As ErrorDeCampoNull y ErrorDeCaveUnicaDuplicada<<<<<<<<<
            Dim Msj As String
            Msj = "No se puede dejar," & Chr(13) & " el campo DNI del trabajador vacío."
            MsgBox(Msj, MsgBoxStyle.Exclamation, "Campo obligatorio vacío:")
            DNITextBox.Focus() 'Si está vacío pon el foco
        End If
    End Try
End Sub

Mas que nada, sería para controlar mas los errores e indicarle al Usuario que lo ha producido y que ha de hacer para solventarlo.

Unos cuantos millones de gracias por su ayuda ;-)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Saber Exceptión

Publicado por Phil Rob (1554 intervenciones) el 18/07/2019 12:00:16
Hola,

No respondo exacto a tu pregunta pero espero te ayudar.

Creo que tiene que hacer muchos controles durante la introducción de los datos.
Si un TextBox este vicia, poner el Focus en le, si un zona debe contener un numérico, verificar que no contiene de carácter alfabética, un debe contener un numérico Float, verificar el separador de decimales, …
Todos aquellos controles son fáciles a hacer en el evento Leave de la zona de introducción.

Por ejemplo :

1
2
3
4
5
6
7
Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
        If TextBox15.Text = "A" Then
            MessageBox.Show("Error, tienes que dar un numerico")
            TextBox1.Clear()
            TextBox1.Select()
        End If
    End Sub

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Saber Exceptión

Publicado por Miguel Ángel (20 intervenciones) el 18/07/2019 20:24:30
Muchas gracias !!!
Pero lamentablemente no es la solución que busco ;-(
Mi pregunta se refiere a qué me tengo que referir en la línea siguiente:
Catch Ex As (excepción a la que me tengo que referir para evitar valor Null en la Base de Datos)
o
Catch Ex As (excepción a la que me tengo que referir para evitar una clave única duplicada en la Base de Datos)

Muchas gracias ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Saber Exceptión

Publicado por Phil Rob (1554 intervenciones) el 18/07/2019 21:57:06
Comprendo.
Pero creo que no existe la repuesta a tu pregunta.
Este es la razon por cual propongo de anticipar los errores ...

Buena suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Saber Exceptión

Publicado por Miguel Ángel (20 intervenciones) el 18/07/2019 22:27:34
Entonces, cómo puedo saber si una clave única está duplicada en una base de datos, si el usuario teclea en un TextBox?
Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Saber Exceptión

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 19/07/2019 11:52:35
Los errores o las excepciones hay que prevenirlos, no lanzar mensajes luego de haber ocurrido cuando ya es tarde.

Prevenir es tan sencillo como hacer algo así antes de grabar.

1
2
3
4
5
if( string.IsNullOrEmpty(textBox1.Text))
{
    MessageBox.Show("No puede dejar este dato vacío", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    textBox1.Focus();
}

Si bien es cierto que este código es para C#, es lo mismo en VB.NET

Y con respecto a saber si metes o no un valor o clave duplicada, primero, la base de datos debe estar preparada para ello y evitarlo, la principal, sería tener una clave única que evite claves duplicadas y de esa manera lo rechazará, ya que no solo debe responder a tu aplicación.

Si además de eso lo quieres averiguar, la mejor manera sería haciendo una consulta a la tabla por el valor a ingresar, si ya figura registrada, lanzas el mensaje antes que lo grabes.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Saber Exceptión

Publicado por Miguel Ángel (20 intervenciones) el 19/07/2019 11:55:34
Muchas gracias!!!
Pero es tan cómodo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar