如何在插入或更新的数据网格视图中立即显示数据。我必须重新启动项目以显示该数据。我使用更新()和刷新()但不适合我
private void UpdateDebtbutton_Click(object sender, EventArgs e)
{
SqlConnection conn = ForConnection();
conn.Open();
using (conn)
{
if (paytextBox.Text != "")
{
SqlCommand cmd = new SqlCommand("spdebth", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@id", SqlDbType.Int).Value =customerIDTextBox.Text.ToString();
cmd.Parameters.Add("@text", SqlDbType.Int).Value = paytextBox.Text.ToString();
cmd.ExecuteNonQuery();
MessageBox.Show("Record updated");
spSelectAllCustomerDataGridView.Update();
spSelectAllCustomerDataGridView.Refresh();
conn.Close();
}
}
}
答案 0 :(得分:0)
Refresh
和Update
方法不用于刷新数据,而是重新绘制WinForms
控件。
有一些方法可以在DataGridView中显示更新的数据:
BindingList
作为数据源,但这需要一个对象来实现INotifyPropertyChanged
DataGridView
上的行DataSource
以下是第三点的示例:
private void UpdateDebt(int customerId, int debt)
{
var debts = (List<Debt>)spSelectAllCustomerDataGridView.DataSource;
var item = debts.First(x => x.Id == customerId);
item.Debt = debt;
spSelectAllCustomerDataGridView.DataSource = null;
spSelectAllCustomerDataGridView.DataSource = debts;
}
您必须重新绑定DataGridView
才能显示更改。