我有两种形式,形式A和形式B,
表单A允许用户插入和更新学生信息.
表单b只是一个DataGridView和按钮.
当我在表单A上插入学生时,我转到表单B,新学生没有在DataGridView上显示,如果我重新运行该程序,新学生将出现在表单B中.
我尝试在表格b上使用此按钮
datagridview1.refresh(); datagridview1.update();
但它仍然无法正常工作.
编辑:
我的插入工人的代码
cmd = new OleDbCommand("insert into FWINFOS (ID,Name,Gender,DateOfBirth,Race,WorkingPlace,PassportNO,DateOfExpire,[Position],Photo) values('" + textBox5.Text + "','" + textBox1.Text + "','" + textBox2.Text + "','" + dateTimePicker1.Value + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox6.Text + "','" + dateTimePicker2.Value + "',@Position,@Photo)",con); cmd.Parameters.AddWithValue("@Position",comboBox1.SelectedText.ToString()); conv_photo(); con.Open(); int n = cmd.ExecuteNonQuery(); //cmd.ExecuteNonQuery(); con.Close(); if (n > 0) { MessageBox.Show("Inserted"); loaddata(); rno++; } else MessageBox.Show("No Insert"); }
插入新worker时,我的Datagridview1(Form2)不会自动更新.但是,如果我重新运行该应用程序,则会出现新工作人员.
解决方法
// Form A public void loaddata() { //do what you do in load data in order to update data in datagrid }
然后在表格B上定义:
// Form B FormA obj = (FormA)Application.OpenForms["FormA"]; private void button1_Click(object sender,EventArgs e) { obj.loaddata(); datagridview1.Update(); datagridview1.Refresh(); }