none
validación de registro existente ASP.net VB con FormView RRS feed

  • Pregunta

  • Hola, ando con un proyecto corto sencillo y tengo un formulario para dar de alta empleados de una empresa pequeña mi formulario ya funciona a la perfección solo quiero ponerle una validación para el campo llave primaria que seria numero de empleado, agregue un linkbutton para hacer la validación con la siguiente función, ojala alguien me pueda ayudar...

    Aclaro que agregue un dropdownlist (dropdownlist3) enlazado a un sqldatasource con un where declarado por el textbox (NumEmpleadoTextBox) visible en el formview

    Protected Sub LinkButton10_Click(sender As Object, e As EventArgs)
            'validacion de numero de empleado
            Dim drop As DropDownList = FormView1.FindControl("DropDownList3")
            Dim numempl As TextBox = FormView1.FindControl("NumEmpleadoTextBox")
            Dim label As Label = FormView1.FindControl("label5")
            Dim sql As SqlDataSource = FormView1.FindControl("sqldatasource33")
           
            If numempl.Text = drop.SelectedIndex.text Then
                label.Text = "Este Empleado ya Existe"
                label.ForeColor = Drawing.Color.Blue
            Else
                label.Text = "Este Numero de Empleado esta disponible"
                label.ForeColor = Drawing.Color.Green
            End If

        End Sub

    Y este el error

    Se produjo una excepción de tipo 'System.NullReferenceException' en sicsis_4.dll pero no se controló en el código del usuario
    Información adicional: Referencia a objeto no establecida como instancia de un objeto.

    acepto toda sugerencia, gracias y saludos


    Octavio Bolloa

    martes, 26 de abril de 2016 0:28

Respuestas

  • Con el código que has puesto, el "System.NullReferenceException" lo más probable es que se produzca debido a que alguno de los controles que buscas con "FindControl" no se encuentre, con lo que el FindControl devuelve Nothing, y seguidamente da un error más abajo cuando tratas de acceder a las propiedades de ese objeto que vale Nothing.

    Para saber cuál es, lo ideal es que ejecutes el código con el debugger de Visual Studio y veas en qué línea exacta se detiene. Una vez que sepas cuál de los cuatro controles es el "culpable", vete al formview y revisa los IDs de los controles para cerciorarte de que concuerdan exactamente con los valores que estás buscando desde el programa en VB.

    martes, 26 de abril de 2016 6:11
  • Muchas gracias por responder ya lo resolví el problema estaba en el if que indicaba si el valor estaba null

    indique primero si era string null y después hacia la comparación y ya no arroja errores

    y lo resolví de esta forma

     If drop.SelectedValue = vbNullString Then
                label.Text = "Este Numero de Empleado esta disponible"
                label.ForeColor = Drawing.Color.Green
            Else
                If drop.SelectedItem.Text = numempl.Text Then
                    label.Text = "Este Empleado ya Existe"
                    label.ForeColor = Drawing.Color.Blue
                End If
            End If
        End Sub


    Octavio Bolloa

    martes, 26 de abril de 2016 16:34

Todas las respuestas

  • Con el código que has puesto, el "System.NullReferenceException" lo más probable es que se produzca debido a que alguno de los controles que buscas con "FindControl" no se encuentre, con lo que el FindControl devuelve Nothing, y seguidamente da un error más abajo cuando tratas de acceder a las propiedades de ese objeto que vale Nothing.

    Para saber cuál es, lo ideal es que ejecutes el código con el debugger de Visual Studio y veas en qué línea exacta se detiene. Una vez que sepas cuál de los cuatro controles es el "culpable", vete al formview y revisa los IDs de los controles para cerciorarte de que concuerdan exactamente con los valores que estás buscando desde el programa en VB.

    martes, 26 de abril de 2016 6:11
  • Muchas gracias por responder ya lo resolví el problema estaba en el if que indicaba si el valor estaba null

    indique primero si era string null y después hacia la comparación y ya no arroja errores

    y lo resolví de esta forma

     If drop.SelectedValue = vbNullString Then
                label.Text = "Este Numero de Empleado esta disponible"
                label.ForeColor = Drawing.Color.Green
            Else
                If drop.SelectedItem.Text = numempl.Text Then
                    label.Text = "Este Empleado ya Existe"
                    label.ForeColor = Drawing.Color.Blue
                End If
            End If
        End Sub


    Octavio Bolloa

    martes, 26 de abril de 2016 16:34