• Domingo 17 de Noviembre de 2024, 15:20

Autor Tema:  Modificar datos de un datagridview de un form desde otro form  (Leído 13000 veces)

Dieguinho..

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Modificar datos de un datagridview de un form desde otro form
« en: Miércoles 12 de Septiembre de 2012, 21:03 »
0
Buenas tardes,
Estuve leyendo un poco pero no caí con la respuesta concreta, espero me puedan dar un mano.

Tengo un form con un datagridview donde se muestra información traida de una base de datos. En ese mismo form tengo los típicos botones de alta, baja y modificación.
Cuando presiono alguno de esos botones, por ejemplo 'eliminar', llama a otro form (modal) al que le paso el Id y con este elimino el registro de la base de datos.
Ahora lo que me faltaría hacer es que antes que se cierre este formulario pueda eliminar también el registro del datagridview. O sea quisiera desde el segundo form acceder al primer form, donde esta del datagridview, y poder modificar los datos.

Se puede hacer?? Probé poniendo públicos algunos controles y funciones pero no hubo caso.

Hasta el momento lo que iba a hacer para salir del paso es luego de la sentencia form2.ShowDialog() vaciar y llenar nuevamente el datagridview. Pero no me parece que esto sea práctico...

Espero me puedan ayudar.
Gracias y saludos!

.net

  • Miembro MUY activo
  • ***
  • Mensajes: 181
  • Nacionalidad: mx
    • Ver Perfil
Re:Modificar datos de un datagridview de un form desde otro form
« Respuesta #1 en: Miércoles 12 de Septiembre de 2012, 22:04 »
0
1.- Creo que no es necesario mandar llamar un 2do form cuando llamas eliminar, por que mejor llamas un messagebox:

  por ejemplo:
       
Código: [Seleccionar]
   if (MessageBox.Show("¿Desea eliminar el registro seleccionado?", "Eliminación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                               //Aqui va el codigo para eliminar
                //Llamar Metodo para refresh el datagrid o vuelve a llamar a la base de datos
            }
este codigo va en el evento click del boton eliminar

Espero te sirva
La lógica lleva a más lógica

Apoyo a un mundo OPEN SOURCE!!!

Eso si es el paraíso

Dieguinho..

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re:Modificar datos de un datagridview de un form desde otro form
« Respuesta #2 en: Jueves 13 de Septiembre de 2012, 14:50 »
0
Claro, puse eliminar como ejemplo, y justo en ese caso es cierto que no necesito abrir otro form.
Pero tanto para modificar como para dar altas sí necesito abrir otro form porque tengo que mostrar los campos detallados.

Gracias igual por la respuesta!

Voy a seguir buscando, si encuentro la solucion lo publico acá.

saludos!

.net

  • Miembro MUY activo
  • ***
  • Mensajes: 181
  • Nacionalidad: mx
    • Ver Perfil
Re:Modificar datos de un datagridview de un form desde otro form
« Respuesta #3 en: Jueves 13 de Septiembre de 2012, 20:56 »
0
Estando en el form1 para editar o dar de alta

Mandars llamar el form2 asi
Código: [Seleccionar]
Form2 f = new Form2();
            if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //Refrescar datos del datagrid   
                //Estos datos vienens de la BD
            }

Esto lo que hara mostrar el form2, despues tu capturaras todos los datos nuevos o de edicion y guardaras en la base datos
El detalle es colocar en el boton de guardar del form2 la propiedad DialogResult y colocarla en ok esto te lo recomiendo que lo coloques en el evento click del boton guardar despues de terminar el proceso de guardado asi:

this.DialogResult = System.Windows.Forms.DialogResult.OK; // Seria para el form2

entonces esto hara que se cierre automaticamente el form2 y tu

llames el punto de refrescar al datagrid en el form1 como aqui se muestra en el comentario de codigo anterior

Código: [Seleccionar]
Form2 f = new Form2();
            if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //Refrescar datos del datagrid   **aki refrescas
                //Estos datos vienens de la BD
            }


 
« última modificación: Jueves 13 de Septiembre de 2012, 20:59 por .net »
La lógica lleva a más lógica

Apoyo a un mundo OPEN SOURCE!!!

Eso si es el paraíso

Dieguinho..

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re:Modificar datos de un datagridview de un form desde otro form
« Respuesta #4 en: Jueves 13 de Septiembre de 2012, 21:24 »
0
Si, entiendo lo que me decís. Inclusive es mas o menos como lo tengo armado ahora.
Pero eso implica realizar una nueva consulta a la base de datos para que actualice el datagridview. O sea estaría yendo 2 veces a la base de datos. La primera para realizar la modificación y la segunda para refrescar mi datagridview.

Lo que yo quiero es lograr modificar el datagridview sin necesidad de entrar nuevamente a la base de datos. Que por cada acción (alta, baja o modificación) vaya 1 sola vez a la BD.

Gracias!!






.net

  • Miembro MUY activo
  • ***
  • Mensajes: 181
  • Nacionalidad: mx
    • Ver Perfil
Re:Modificar datos de un datagridview de un form desde otro form
« Respuesta #5 en: Jueves 13 de Septiembre de 2012, 22:03 »
0
Creo que tu quieres que el grid este bindeado a la base de datos, eso implica que siempre tengas una conexion abierta a la base de datos no se que tan riesgoso sea, asi con esa conexion abierta.

La lógica lleva a más lógica

Apoyo a un mundo OPEN SOURCE!!!

Eso si es el paraíso

Dieguinho..

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re:Modificar datos de un datagridview de un form desde otro form
« Respuesta #6 en: Viernes 14 de Septiembre de 2012, 14:07 »
0
En concreto lo que quiero es tener el grid desconectado de la base, ya que no quiero que quede la conexion abierta. Y cuando desde otro formulario modifico la base (al hacer altas bajas o updates), paralelamente pueda acceder a ese grid para realizar la misma modificación sin necesidad de tener que hacer un refresh.
La verdad pensé que iba a ser algo más sencillo. Pero se ve que no!
Me las arreglaré de alguna otra manera, pero igual seguiré buscando.

saludos!