Duda acerca de Propiedades y Acceso a Datos.
-
lunes, 27 de febrero de 2012 15:09
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.
Todas las respuestas
-
lunes, 27 de febrero de 2012 15:27Moderador
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 18:17Gracias.

