提问人:VinceG 提问时间:5/5/2021 最后编辑:uvrVinceG 更新时间:5/5/2021 访问量:319
为什么更新数据库后数据网格没有更新?
Why is my datagrid not updating after I update my database?
问:
所以我这里有这个刷新和填充函数
private void Refresh()
{
MySqlCommand cmd = conn.CreateCommand();
String data, id, platenumber, brand, model, yearmodel, odometer;
cmd.CommandText = "SELECT * FROM vehicle";
cmd.CommandType = CommandType.Text;
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
id = reader.GetInt32(0).ToString();
platenumber = reader.GetString(1);
brand = reader.GetString(2);
data = $"{ id}/{ platenumber}/{ brand}";
}
reader.Close();
PopulateDataGrid();
}
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;
}
这是我的更新功能
private void savebtn_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
int newid = Convert.ToInt32(idtxt.Text);
int ID = newid;
MySqlCommand cmd = new MySqlCommand("update vehicle set platenumber=@platenumber 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.MinDate;
//cmd.Parameters.Add("@exdate", MySqlDbType.Date).Value = regexp.MinDate;
cmd.Parameters.Add("@odometer", MySqlDbType.Decimal).Value = odometer.Text;
int i = cmd.ExecuteNonQuery();
if (i != 0)
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("Fail");
}
f1.Refresh();
this.Close();
}
问题是当我单击 FORM2 上的“保存”按钮时,数据网格上的所有内容都保持不变,但是当我使用相同的代码单击 FORM1 中的刷新按钮时,它可以正常工作。即使我将该函数放在 FORM2 中,在我单击更新按钮后,它仍然不会刷新数据网格。我在这里错过了什么?
答: 暂无答案
评论
PopulateDataGrid
savebtn_Click
Form1 f1 = new Form1();
f1
f1
Form1
f1.Show();
Forms