Visual Basic.NET - ayuda con error

 
Vista:

ayuda con error

Publicado por Alvar0 (19 intervenciones) el 22/04/2013 15:17:04
Estoy trabajando con un codigo para validar rut pero tengo un problema, el codigo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub mtxRut_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles mtxRut.Validated
        Dim rutLimpio As String
        Dim digitoVerificador As String
        Dim suma As Integer
        Dim contador As Integer = 2
 
        rutLimpio = mtxRut.Text.Replace(".", "")
        rutLimpio = rutLimpio.Replace("-", "")
        rutLimpio = rutLimpio.Replace(" ", "")
        rutLimpio = rutLimpio.Substring(0, rutLimpio.Length - 1)
        digitoVerificador = mtxRut.Text.Substring(mtxRut.Text.Length - 1, 1)
 
        Dim i As Integer
 
        For i = rutLimpio.Length - 1 To 0 Step -1
 
            If contador > 7 Then
                contador = 2
            End If
 
            suma += Integer.Parse(rutLimpio(i).ToString()) * contador
            contador += 1
        Next
 
        Dim dv As Integer = 11 - (suma Mod 11)
        Dim DigVer As String = dv.ToString()
 
        If DigVer = "10″ Then" Then
            DigVer = "K"
        End If
 
        If DigVer = "11″ Then" Then
            DigVer = "0″"
        End If
 
        If DigVer = digitoVerificador.ToUpper Then
            lbRut.Text = "Rut Valido"
            txtNombreEmp.Focus()
            btIngresarEmp.Enabled = True
        Else
            lbRut.Text = "Rut Invalido"
            MessageBox.Show("Rut Invalido", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            mtxRut.Focus()
            mtxRut.SelectAll()
            btIngresarEmp.Enabled = False
        End If
    End Sub


El tema es que al quedar el campo de texto vacio se produce un error y se cae el programa, el error es el siguiente :"La longitud no puede ser inferior a cero.Nombre del parámetro: length" y me marca la linea rutLimpio = rutLimpio.Substring(0, rutLimpio.Length - 1), ojala me puedan ayudar ya que soy nuevo en lo que es vb.net, saludos
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

ayuda con error

Publicado por Carlos (16 intervenciones) el 22/04/2013 23:37:51
Agregar:
Private Sub mtxRut_Validated(ByVal sender As Object, ByVal e As System.EventArgs).....
IF mtxRut.Text.Length=0 then
MessageBox.Show("Ingrese Rut")
mtxRut.Focus()
ELSE

AQUI VA TU CODIGO

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

ayuda con error

Publicado por Alvar0 (19 intervenciones) el 23/04/2013 06:02:34
Muchas gracias por tu respuestas, mañana probare y comento que tal, 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

ayuda con error

Publicado por Alvar0 (19 intervenciones) el 23/04/2013 13:16:12
Continua el error, al momento de cambiar el foco por ejemplo el campo de texto esta en blanco y apreto el boton "nuevo" (que limpia los campos y se cae, cada vez que se cambia el foco y el masketbox esta vacio se cae.
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

ayuda con error

Publicado por Carlos (16 intervenciones) el 24/04/2013 00:44:53
Lo mas practico para cualquier error es:

TRY

ACA VA TU CODIGO

CATCH EX AS EXCEPTION
MessageBox.Show(EX.Message)
END TRY
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

ayuda con error

Publicado por Alvar0 (19 intervenciones) el 24/04/2013 14:35:26
Muchas gracias por tu ayuda, ahora el programa funciona impecable y elimine el mensaje cada vez que ocurre el error y asi pasa desapercibido, 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