C sharp - maestro detalle en .NET

 
Vista:

maestro detalle en .NET

Publicado por JJuan (6 intervenciones) el 03/01/2007 14:03:05
Resumen:
Estoy creando un Windows form con Visual Studio.Net.
Tengo la base de datos creada en sql server, con 3 tablas: personas, y vehículos.
la relacion personas-vehículos es 1:N.
Tengo creado el DataSet correspondiente en VStudio.

Mi pregunta es:
En el form de vehiculo, necesito seleccionar la persona propietaria del vehiculo.
No quiero usar ComboBox porque son muchas las personas, sería demasiado larga la lista.

Alguien puede ayudarme?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:maestro detalle en .NET

Publicado por Yamil Bracho (1164 intervenciones) el 03/01/2007 14:31:22
Puedes mostrarlos en un DataList. o hacer una pantalla de busqueda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

mejor pantalla de busqueda

Publicado por JJuan (6 intervenciones) el 03/01/2007 19:18:12
Gracias por responder tan rápido.
He descartado el DataList pq intento que el usuario pueda filtrar antes de seleccionar la fila de la tabla maestra.
Estoy haciendo la 2ª opcion: pequeña pantalla de busqueda. Tiene un cuadro txt, un datagrid y un boton pª buscar.

Problema:
-Al ser la busqueda un nuevo form, ya no tengo el contexto del dataSet original.
Cuando el usuario seleccione la fila del maestro en el datagrid de búsqueda, cómo devuelvo la clave al dataSet del form detalle?
Estoy mirando cómo hacer un evento. Hay otra forma más sencilla?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:mejor pantalla de busqueda

Publicado por Yamil Bracho (1164 intervenciones) el 03/01/2007 20:36:49
Puedes colocar una propiedad en el formulario que llama a tu formulario de busqueda y alli colocar el indice de la fila que selecciono el usuario o la clave o algun dato que te permita hacer la busqueda en el grid
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pruebo con una propiedad

Publicado por JJuan (6 intervenciones) el 03/01/2007 23:48:29
O sea:
1-Creo un atributo con get{} y set{}.
2-En el Set introduzco código c# para que actualice la ForeignKey del dataRow
3-Cuando el usuario pulse aceptar, actualizo la BD
Me pregunto si al actualizar el dataRow, se actualizará tambien el form detalle para q se vea el cambio
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cómo se enlaza un dataSet?

Publicado por JJuan (6 intervenciones) el 04/01/2007 17:46:51
hasta ahora todo funciona. la situacion actual es:
-Base de datos con 3 tablas:
1:N personas->automoviles, y 1:N marcas->Automoviles.
-El dataSet tiene esta misma estructura.
-El usuario edita una ficha(form) de automovil. Para cambiar la persona asociada, abre el form de busqueda de personas, selecciona y cierra
-El identificativo de persona lo tengo ahora en una propiedad de la ficha de automovil.
-Actualizo el dataSet:
DataRowView drv =(DataRowView)BindingContext[miDs,"autos"].Current;
miDs.autosRow fila = (miDs.autosRow )drv.Row;
drv.Row.BeginEdit();
drv.Row["idPersona"] = pkPersona; //primary key de persona seleccionada
drv.Row.EndEdit();
PROBLEMA:
El campo idPersona del dataRow automovil ha cambiado, pero en la ficha (form) de edicion no ha cambiado nada (debería ver el nombre de la nueva persona).
_____________________________________________
Puede que el problema esté en el Bind de los campos al dataSet:
En este caso, al crear el bind de un campo de automovil, veo 3 dataTables:
personas->automoviles, marcas->automoviles y automoviles.
Cual de las tres uso para enlazarlo?
Se supone que si en la edicion de automovil avanzo ficha, los campos enlazados a las maestras deberian actualizarse.

En fin, estoy un poco liado, pero creo q cerca de la solucion.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar