Visual Basic.NET - Cargar datos en DataGrid desde otro formulario

 
Vista:
Imágen de perfil de Marcos
Val: 4
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar datos en DataGrid desde otro formulario

Publicado por Marcos (2 intervenciones) el 05/10/2018 23:47:17
Buenas gente. Me encuentro realizando un proyecto de software para una mutualista en Visual Basic .net con base de datos en Mysql.
Estoy trabajando en capas (presentación, lógica y persistencia).

Tengo un formulario con un DataGridView donde cargo datos desde Mysql (Form 1).
Para modificar un dato, se le da doble click y se abrirá otro formulario (Form 2) al que se pasan los datos del datagrid (en textBox para poder modificarlos). Los datos se modifican correctamente, hasta ahí todo bien.

El problema es que no puedo actualizar el DataGridView luego de haber realizado la modificación, o sea, al momento de cerrarse el Form 2, el Form 1 debería volver a cargar los datos de la DB en el DataGrid.

Lo hice de esta forma:

Capa Persistencia:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Public Shared Sub ListarDeudores(ByRef dgvPagos As DataGridView)
    Dim conexion As New Conexion()
    Dim dt As New DataTable()
    Using cmd As New MySqlCommand()
        With cmd
            .Connection = conexion.cnn
            .CommandText = "Select u.ci as CI, u.nombre as Nombre, u.apellido1 as Apellido, u.apellido2 as
                 'Segundo apelido', pr.meses_atrasados as 'Meses que debe'" &
                " from la_policlinica.paciente p" &
                " left join la_policlinica.usuario u on p.ci_paciente = u.ci" &
                " left join la_policlinica.particular pr on pr.ci_paciente = p.ci_paciente" &
                " where pr.meses_atrasados > 0"
 
            .CommandType = CommandType.Text
 
        End With
 
        Try
            Using adaptador As New MySqlDataAdapter(cmd)
                adaptador.Fill(dt)
            End Using
            dgvPagos.DataSource = dt
            dgvPagos.RowTemplate.Height = 30
 
 
        Catch ex As Exception
            Console.WriteLine(ex.ToString())
            conexion.Close()
        End Try
        conexion.Close()
    End Using
End Sub

Capa Lógica:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Shared Sub ListarDeudores(ByRef dgvPagos As DataGridView)
 
    Try
 
        P_Pago.ListarDeudores(dgvPagos)
 
    Catch ex As Exception
 
        MsgBox(ex.Message)
        MsgBox("Error al cargar" + ex.Message + MsgBoxStyle.Critical)
 
    End Try
 
End Sub

Cargando datos desde el Form 1 Load:



1
2
3
4
5
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
    L_Pago.ListarDeudores(Me.dgvPagos)
 
End Sub

Cargando datos desde el Form 2 Closed:



1
2
3
4
5
6
7
8
9
10
Private Sub Form2_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
 
    Try
        L_Pago.ListarDeudores(Form1.dgvPagos)
 
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
 
End Sub


No entiendo por qué no funciona de esta manera, tampoco se me ocurre otra forma de hacerlo.
Muchas gracias desde ya!
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

Cargar datos en DataGrid desde otro formulario

Publicado por kingk (77 intervenciones) el 06/10/2018 00:32:56
Hola, puedes hacerlo asi:
En el Form1 llamas al Form2 asi
1
2
3
If Form2.ShowDialog()=Windows.Forms.DialogResult.OK Then
L_Pago.ListarDeudores(Me.dgvPagos)
End If
Y en un boton o el evento FormClosing del form1 escribes:
1
Me.DialogResult=Windows.Forms.DialogResult.OK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Marcos
Val: 4
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar datos en DataGrid desde otro formulario

Publicado por Marcos (2 intervenciones) el 06/10/2018 00:52:49
Funcionó!!!! Te agradezco mucho kingk, hace días que estoy con este error
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.466
Plata
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Cargar datos en DataGrid desde otro formulario

Publicado por Wilfredo Patricio Castillo (718 intervenciones) el 09/10/2018 00:38:53
Si quieres trabajar en capas, tienes que mejorar tu código, es pésimo el rendimiento de los datasets, y eso de enviar un datagridview?.
POO es lo que debes aplicar.

Los métodos y funciones deben devolver un resultado y no lo estás haciendo.

Y si te piden que expongas tu aplicacipon hacia la web?, vas a escribir otra aplicación?, la idea de trabajar en capas es reutilizar lo que ya se tiene, sino pues no tiene sentido.

Cómo reutilizarías esos métodos en web?, existe el datagridview en web?, no verdad?.

Tienes que replantearte o entender mejor el concepto.

Otra cosa, para refrescar los datos en tu datagridview, es tan simple como mover la parte donde cargas los datos a una función y lo puedes invocar en el evento Activate del formulario1, con eso cuando está activo el formulario2 modificas y cierras, se activa el formulario1 y se ejecutará la carga de los datos y listo, no tienes que estar ensuciando tu código en vano.

Saludos cordiales.
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