我在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
我怎样才能最轻松地做到这一点?
答案 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。