Principales respuestas
Recuperar datos de base de datos en textbox, combobox, datapicker (fechas y horas) en vb.net

Pregunta
-
Hola amigos, tengo un problema al recuperar datos desde mi base de datos a los controles de un formulario en vb.net.
les comento, en mi base de datos, tengo varias tablas que me permiten tener datos preestablecidos como paices, provincias y capitales.
en una tabla que se llama alumnos tengo los siguientes campos: nombre, apellido, pais, provincia, capital, fecha, hora
- tabla paices que tiene los campos: codigo, pais, zipcode
- tabla provincia con los campos: codigo, codigo_pais, provincia, zipcode
- y tabla capital con los campos: codigo, codigo_provincia, capital, zipcode
estos datos se ingresan mediante un formulario, con los siguientes controles
txt_nombre, txt_apellido, combo_pais, combo_provincia, combo_capital, datapk_fecha, datapk_hora,
y en el mismo formulario hay un datagridview que muestra todos los registros ingresados..
como pueden ver al guardar el formulario se guardaria asi
- nombre | apellido | pais | provincia | capital | fecha | hora |
- Carlos | jacome | 1 |11 |111 | 01/11/2015 | 08:20 |
donde los numero que se ven en los campos pais, provincia y capital, corresponden a los codigos de los campos de cada valor es decir ejem: ecuador (1) , Pichincha (11) , Quito (111). es decir guardo los valumember
el problema que tengo es que cuando quiero modificar el registro completo, y quiero devolver los valores del registro a los controles del formulario, retornan ls codigos del campo, y no los displaymember.
es decir en ves de retornar asi:
- nombre | apellido | pais | provincia | capital | fecha | hora |
- Carlos | jacome | Ecuador | Pichincha | Quito | 01/11/2015 | 08:20 |
devuelve los valores tal como estan en la base,
mi pregunta, como deberia hacer el proceso para que me devuelva los valores que deseo segun los codigos que tengo almacenados.
- Editado Astaroth250581 lunes, 9 de noviembre de 2015 2:14
Respuestas
-
Hola Astaroth250581,
Quizá lo más fácil sea tener 3 columnas ocultas donde se almacene el valor id (ValueMember), con ello podrías conseguir seleccionar los objetos ComboBox a partir del valor almacenado (identificador). El objeto DGV debería mostrar los valores texto (DisplayMember) por cuanto 1, 11, 1111 no tiene ningún significado a los ojos del usuario.
Pero, si tu aplicación es usada por múltiples usuarios entonces es posible que los datos que seleccionas en el DGV no sean los actuales, lo que sugiero es que las filas del objeto DGV sirvan sólo para obtener el identificador de la fila, pero para efectos de mostrar los valores en los controles deberías traerlos desde la base de datos. Considera que incluso la fila seleccionada podría haber sido eliminada por otro usuario.
- Propuesto como respuesta Karen MalagónModerator lunes, 9 de noviembre de 2015 21:22
- Marcado como respuesta Karen MalagónModerator martes, 10 de noviembre de 2015 21:17
Todas las respuestas
-
buen trabajo quieres hacer con el formulario, y suena interesante por lo demás.
mira Astaroth se me ocurre que puedes tener alguna condición donde te transforme el valor con el país o ciudad o región que corresponda.
se me ocurre algo asi, que te cargue el código del país en el datagridview, pero al darle doble click a la fila que quieras editar te muestre el valor que esta al lado del código, esto pensando en la base de datos. algo así se me ocurre.
Código País
1 Chile
que al llenar el textbox desde el datagridview te muestre el valor de al lado. ojala te de una idea o algo
saludos!
-
Hola Astaroth250581,
Quizá lo más fácil sea tener 3 columnas ocultas donde se almacene el valor id (ValueMember), con ello podrías conseguir seleccionar los objetos ComboBox a partir del valor almacenado (identificador). El objeto DGV debería mostrar los valores texto (DisplayMember) por cuanto 1, 11, 1111 no tiene ningún significado a los ojos del usuario.
Pero, si tu aplicación es usada por múltiples usuarios entonces es posible que los datos que seleccionas en el DGV no sean los actuales, lo que sugiero es que las filas del objeto DGV sirvan sólo para obtener el identificador de la fila, pero para efectos de mostrar los valores en los controles deberías traerlos desde la base de datos. Considera que incluso la fila seleccionada podría haber sido eliminada por otro usuario.
- Propuesto como respuesta Karen MalagónModerator lunes, 9 de noviembre de 2015 21:22
- Marcado como respuesta Karen MalagónModerator martes, 10 de noviembre de 2015 21:17