none
La conversión del tipo 'DBNull' en el tipo 'String' no es valida. RRS feed

  • Pregunta

  • Tengo este codigo:

    Private Sub Buscar_Empleado()
            Dim consulta As String 'Variable para almacenar la consulta SQL
            Dim lista As Byte 'Variable lógica

            Try
                conexion.Open() 'Se abre la conexión de la base de datos
                linkEliminarEmpleadoB.Visible = True 'Se hace visible el link para eliminar el empleado
                lblEliminarEmpleado.Visible = True
                linkBuscarEmpleadoB.Visible = False 'Se oculta el link para realizar búsquedas
                lblBuscarEmpleado.Visible = False
                'Condición que valida si el cuadro de texto esta vacío
                If txtBajaCodigoE.Text <> "" Then
                    consulta = "SELECT * FROM empleados WHERE codigo_empleado =" & txtBajaCodigoE.Text & ""
                    da = New OleDb.OleDbDataAdapter(consulta, conexion)
                    ds = New DataSet
                    da.Fill(ds, "empleados")
                    lista = ds.Tables("empleados").Rows.Count
                    If ds.Tables("empleados").Rows.Count = 0 Then
                        MsgBox("El código ingresado no existe en la Base de Datos", vbCritical, "Error")
                        Call Inicializar()
                    End If
                Else
                    MsgBox("Ingrese el código del empleado", vbExclamation, "Campo Vacío")
                    txtBajaCodigoE.Focus()
                End If

                If lista <> 0 Then
                    txtBajaCodigoE.Text = ds.Tables("empleados").Rows(0).Item("codigo_empleado")
                    txtBajaNombreE.Text = ds.Tables("empleados").Rows(0).Item("nombre_empleado")
                    txtBajaPuestoE.Text = ds.Tables("empleados").Rows(0).Item("puesto")
                    TxtBajaLicencia.Text = ds.Tables("empleados").Rows(0).Item("licencia")
                End If

            Catch ex As Exception
                MsgBox(ex.ToString) 'Muestra mensajes de error del sistema
            Finally
                conexion.Close() 'Finaliza la conexión a la base de datos
            End Try
        End Sub

    ----------------------------------------------------------------------------------------------------------------------------

    El error me lo marca en la línea que está con negrita:

    TxtBajaLicencia.Text = ds.Tables("empleados").Rows(0).Item("licencia")

    En mi base de datos algunos registros tienen vacío ese campo (licencia)

    y cuando intento mostrarlo en el formulario me marca error cada vez que busco un registro en donde no se ha ingresado "licencia".

    Espero me puedan apoyar.

    Gracias!!!

    lunes, 22 de enero de 2018 1:57

Respuestas