How do i refresh my datagridview after inserting n

2019-08-23 07:02发布

To elaborate my project i have 4 forms the 1st one is the main, i used panel to switch from the other 3 forms, although the inserting of data is working i want to see the updated sql column in the table after i inserted from the other form but when i tried to refresh the datagrid it doesn't work i have to close the program and start again just to load the new data in the datagridview.

I've tried:

DataGridView1.Refresh();

and load_table() but it doesn't work for me.

This is the code that display the tables on my database(2nd form):

Imports MySql.Data.MySqlClient
Public Class search

    Dim cn As New MySqlConnection
    Dim COMMAND As MySqlCommand




    Public Sub DataGridView1_ParentChanged(sender As Object, e As EventArgs) Handles DataGridView1.ParentChanged
        cn.ConnectionString = "server=localhost; userid=root; password=4102123; database=pis"
        Dim SDA As New MySqlDataAdapter
        Dim dbDataSet As New DataTable
        Dim bSource As New BindingSource
        Try
            cn.Open()
            Dim Query As String
            Query = "select * from pis.patient_info"
            COMMAND = New MySqlCommand(Query, cn)
            SDA.SelectCommand = COMMAND
            SDA.Fill(dbDataSet)
            bSource.DataSource = dbDataSet
            DataGridView1.DataSource = bSource
            SDA.Update(dbDataSet)

            cn.Close()

        Catch ex As Exception
            MessageBox.Show(ex.Message)

        End Try
    End Sub


End Class

This is the main code(1st form):

Imports MySql.Data.MySqlClient
Public Class Form1
    Dim cn As New MySqlConnection
    Dim COMMAND As MySqlCommand

    Private Sub OvalShape1_Click(sender As Object, e As EventArgs)

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        switchpanel(search)

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        switchpanel(add)
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        switchpanel(del)
    End Sub

    Sub switchpanel(ByVal panel As Form)
        Panel1.Controls.Clear()
        panel.TopLevel = False
        Panel1.Controls.Add(panel)
        panel.Show()
    End Sub
End Class

Code i use for insertion of data(3rd form):

Imports MySql.Data.MySqlClient
Public Class add
    Dim cn As New MySqlConnection
    Dim COMMAND As MySqlCommand


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        cn.ConnectionString = "server=localhost; userid=root; password=4102123; database=pis;"
        Dim READER As MySqlDataReader

        Try
            cn.Open()
            Dim Query As String
            Query = "insert into pis.patient_info(Name) values('" & TextBox1.Text & "')"
            COMMAND = New MySqlCommand(Query, cn)
            READER = COMMAND.ExecuteReader

            cn.Close()

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub


End Class

Is it possible to call another form or class on different forms? For example: from the main form above i'll call the 2nd form to execute the code again, because once i click the button from the main the program code only execute once, when i switch forms to 3rd and 1st form then come back to 2nd form the datagridview will not refresh anymore, instead the code that will work only is the switchpanel(search) and displays not updated datagridview.

0条回答
登录 后发表回答