首页 > 解决方案 > 使用 vb.net 插入新的 SQL 数据后如何刷新我的 datagridview

问题描述

为了详细说明我的项目,我有 4 种形式,第一种是主要形式,我使用面板从其他 3 种形式切换,虽然数据的插入正在工作,但我希望在从另一个插入后看到表中更新的 sql 列表单但是当我尝试刷新数据网格时它不起作用我必须关闭程序并重新启动只是为了在数据网格视图中加载新数据。

我试过了:

DataGridView1.Refresh();

但这对load_table()我不起作用。

这是在我的数据库中显示表的代码(第二种形式):

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

这是主要代码(第一种形式):

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

我用于插入数据的代码(第三种形式):

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

是否可以在不同的表单上调用另一个表单或类? 例如:从上面的主窗体中,我将调用第 2 窗体再次执行代码,因为一旦我从主窗体单击按钮,程序代码仅执行一次,当我将窗体切换到第 3 和第 1 窗体时,然后返回第二种形式的 datagridview 将不再刷新,而是仅起作用的代码是switchpanel(search)并显示未更新的 datagridview。

标签: mysqlsqlvb.netvisual-studio

解决方案


推荐阅读