none
Duda acerca de Propiedades y Acceso a Datos. RRS feed

  • Pregunta

  • Hola a todos;

    Tengo una pregunta acerca de si lo que os voy a contar es correcto o existe alguna forma más adecuada de hacerlo (es una ejemplo ficticio).

    Desde el código de un botón  de un  formulario quiero mostrar en unas etiquetas los valores de DNI, salario y  nombre de empleados, estos valores se encuentran en una tabla de empleados de una BBDD, y quiero que se cargan a   propiedades solo lectura de empleados en una clase de Empleados.

    Quiero mostrar los datos de un empleado asi:

    Dim _empleado as New Empleado

    lblDNI.Text=_empleado.DNI

    lblNombre.Text=_empleado.Nombre

    lblSalario.Text=_empleado.Salario

    Siendo DNI, Nombre,  Salario propiedades de la clase Empleados.

    Mi pregunta es cómo  cargo los valores de la tabla de la BBDD en las propiedades solo lectura  de la clase.

    Yo he pensado es crear una función que se llame desde el constructor de la clase ( para que se llame siempre que se instancia la clase ) empleados,  y  que devuelva un dataset con los datos del empleado buscado, y asignando a las variables de propiedad (Private) cada uno de los valores que  guarda el dataset que ha devuelto la función:

    Private _DNI  as string= _DatasSet.Row…(ahora no me acuerdo de memoria) para el DNI

    Private _Nombre  as string=_DatasSet.Row…(ahora no me acuerdo de memoria) para el Nombre

    Private _Salario  as string=_DatasSet.Row…(ahora no me acuerdo de memoria) para el Salario

    Public ReadOnly Property DNI() As String

        Get

            Return _DNI 

        End Get

    End Property

    Public ReadOnly Property Nombre  () As String

        Get

            Return _Nombre 

        End Get

    End Property

    Public ReadOnly Property Salario() As String

        Get

            Return _Nombre 

        End Get

    End Property

    ¿Es esta forma correcta, existe otra mejor, conocéis algún ejemplo al respecto?

    Gracias, un saludo.

    lunes, 27 de febrero de 2012 15:09

Respuestas

  • Su proceder es básicamente correcto, pero los DataSet son animales grandes y lentos.  Si usted tiene clases que representan objetos, el uso del DataSet es superfluo e innecesario y puede reemplazarse por algo más eficiente.  Por ejemplo, podría usted utilizar un SqlDataReader.  En el pasado yo he utilizado un constructor que recibe el SqlDataReader y el mismo objeto lee las columnas directamente.  Si tengo más de un registro en el SqlDataReader, lo que hago es traducirlo a una colección; en su caso sería una colección de objetos tipo Empleado.

    Jose R. MCP

    • Marcado como respuesta arrocal lunes, 27 de febrero de 2012 18:17
    lunes, 27 de febrero de 2012 15:27
    Moderador

Todas las respuestas

  • Su proceder es básicamente correcto, pero los DataSet son animales grandes y lentos.  Si usted tiene clases que representan objetos, el uso del DataSet es superfluo e innecesario y puede reemplazarse por algo más eficiente.  Por ejemplo, podría usted utilizar un SqlDataReader.  En el pasado yo he utilizado un constructor que recibe el SqlDataReader y el mismo objeto lee las columnas directamente.  Si tengo más de un registro en el SqlDataReader, lo que hago es traducirlo a una colección; en su caso sería una colección de objetos tipo Empleado.

    Jose R. MCP

    • Marcado como respuesta arrocal lunes, 27 de febrero de 2012 18:17
    lunes, 27 de febrero de 2012 15:27
    Moderador
  • Gracias.
    lunes, 27 de febrero de 2012 18:17