C# 在数据库中插入并更新值后,如何从另一个窗体刷新datagrid视图?
在更新数据并将值插入数据库后,我不确定如何继续刷新数据网格视图。我知道我必须将数据库值绑定到另一个表单,这样当我单击“更新”或“插入”按钮时,它们将用新内容填充另一个表单中的DGV 到目前为止,这就是我所拥有的 这是我填充Datagrid的代码:C# 在数据库中插入并更新值后,如何从另一个窗体刷新datagrid视图?,c#,mysql,datagridview,.net-2.0,C#,Mysql,Datagridview,.net 2.0,在更新数据并将值插入数据库后,我不确定如何继续刷新数据网格视图。我知道我必须将数据库值绑定到另一个表单,这样当我单击“更新”或“插入”按钮时,它们将用新内容填充另一个表单中的DGV 到目前为止,这就是我所拥有的 这是我填充Datagrid的代码: private void PopulateDataGrid() { Form1 f1 = new Form1(); MySqlCommand cmd = conn.CreateCommand();
private void PopulateDataGrid()
{
Form1 f1 = new Form1();
MySqlCommand cmd = conn.CreateCommand();
DataTable datatable = new DataTable();
cmd.CommandText = "select id,platenumber,brand,model,yearmodel,regdate,exdate,odometer from vehicle";
cmd.CommandType = CommandType.Text;
dataAdapter = new MySqlDataAdapter(cmd);
dataAdapter.Fill(datatable);
f1.dataGridView1.DataSource = datatable;
}
但是,当我调用save按钮中的函数时,它似乎跳过了它
private void savebtn_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
DataTable dt = new DataTable();
int newid = Convert.ToInt32(idtxt.Text);
int ID = newid;
MySqlCommand cmd = new MySqlCommand("update vehicle set platenumber=@platenumber, brand=@brand, model=@model, yearmodel=@yearmodel, regdate=@regdate, exdate=@exdate, odometer=@odometer where ID = @id" , conn);
cmd.Parameters.AddWithValue("@id", ID);
cmd.Parameters.Add("@platenumber", MySqlDbType.VarChar, 10).Value = pnumber.Text;
cmd.Parameters.Add("@brand", MySqlDbType.VarChar, 60).Value = brand.Text;
cmd.Parameters.Add("@model", MySqlDbType.VarChar, 45).Value = model.Text;
cmd.Parameters.Add("@yearmodel", MySqlDbType.Int32).Value = yearmodel.Text;
cmd.Parameters.Add("@regdate", MySqlDbType.Date).Value = datereg.Value;
cmd.Parameters.Add("@exdate", MySqlDbType.Date).Value = regexp.Value;
cmd.Parameters.Add("@odometer", MySqlDbType.Decimal).Value = odometer.Text;
int i = cmd.ExecuteNonQuery();
if (i != 0)
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("Fail");
}
PopulateDataGrid();
this.Close();
}
当我单击按钮更新/插入数据库并关闭单独的表单时,我对刷新DGV应该做什么感到困惑。对您要求的内容感到困惑,但是刷新();应更新您的datagridview我希望我的DGV在编辑/插入表单关闭后刷新。我已尝试放置
f1.Refresh()
在此之前this.Close()代码>但它仍然无法刷新我的DG。很明显,您没有阅读上一个问题中关于同一件事的我的评论……代码行…Form1 f1=new Form1()代码>…这两种方法都是您的问题。您从不显示这些表单,因此您的代码在一个没有人会看到的表单上工作。这就是为什么你看不到这些变化。嗨,对不起,我确实读了你在我上一篇文章中的评论。我添加了f1.Show()
在此之前this.Close()代码>成功了。我看到了我的DGV的变化。但是,一旦我完成更新/插入,我的Form1中的2个现在已打开。我只需要在更新/插入之前打开编辑/插入表单的表单之后显示1个表单1。我知道f1.Show()
会做什么,这就是我的观点,在两种方法中更新网格的代码都使用自己的第二个Form1
,这与您看到的Form1
不同。我想这会让你明白为什么你没有看到自己的改变。不显示第二个表单1
不会改变任何内容。代码仍在引用“不同的”Form1
比你看到的要多。如果你想Form2
引用Form1
中的内容,那么你必须在Form1
创建并显示Form2时将内容传递给Form2。
这是我在你前面的问题中的上一个链接演示的……如何在两张表格。嘿,谢谢,伙计,我终于拿到了@JohnG