Datagridview - 在另一个表单上的DB Update之后刷新

时间:2016-11-17 08:52:03

标签: vb.net datagridview

我在Form1中设置Datagridview DataSource。在表单2中,我更新这些记录(在DB中正常工作),更新后我想在Form1中刷新Datagridview。

这是我在Form1_Button_Click中的代码:

 OracleConn() 'connection to my DB

        Using cmd As New OracleCommand()

         Dim SQL As String = "Select * FROM MyTable"

            If Chk1.Checked = True Then

                cmd.Connection = OracleConn()
                cmd.CommandText = SQL
                cmd.CommandType = CommandType.Text

                Dim dt1 As New DataTable
                  Using dad As New OracleDataAdapter(SQL, OracleConn)
                    dad.Fill(dt1)
                  End Using
            End if
                DataGridView1.DataSource = dt1

End Using

我怎样才能最轻松地做到这一点?

2 个答案:

答案 0 :(得分:1)

记下在Form1中填充数据网格的方法

public sub FillData()
OracleConn() 'connection to my DB

    Using cmd As New OracleCommand()

     Dim SQL As String = "Select * FROM MyTable"

        If Chk1.Checked = True Then

            cmd.Connection = OracleConn()
            cmd.CommandText = SQL
            cmd.CommandType = CommandType.Text

            Dim dt1 As New DataTable
              Using dad As New OracleDataAdapter(SQL, OracleConn)
                dad.Fill(dt1)
              End Using
        End if
            DataGridView1.DataSource = dt1

 End Using
 end sub

将方法调用到按钮单击(Form1_Button_Click)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FillData() 
End sub

现在,您可以在更新后直接从Form2调用Form1的方法,

Form1.FillData() 

记录将反映在表格1

注意:方法在访问时应该是公开的。

答案 1 :(得分:0)

而不是设置

DataGridView1.DataSource = dt1;

使用全局BindingSource对象,并将其绑定到两个DataGridView,然后在一个DataGrid中进行的所有更改将反映在另一个DataGrid中。

BindingSource bsData = new BindingSource();
bsData.DataSource = dt1;

DataGridView1.DataSource = bsData;
DataGridView2.DataSource = bsData;

在你的第二个表单中,将控件,TextBox,ComboBox等绑定到这个BindingSource,再次,你不需要刷新de DataGridView。