0

我有一个包含一个按钮和一个 DataGridView 的表单。

该按钮允许我向数据库添加一个新人:

DataRow drow = sql.ds.Tables["Etablissement"].NewRow();
            drow[1] = nom.Text; //drow[0] it's an auto-countign var
            drow[2] = string.IsNullOrEmpty(ville.Text) ? DBNull.Value : (object)ville.Text;
            sql.ds.Tables["Etablissement"].Rows.Add(drow);
            SqlCommandBuilder cmb = new SqlCommandBuilder(daEtablissement);
            daEtablissement.Update(sql.ds, "Etablissement");
            dgv.Refresh(); // dgv : DataGridView that i'm usign
            XtraMessageBox.Show("Bien Ajouter !");
            Videz();
            nom.Focus();

问题是刷新DataGridView时我添加的人的代码不显示,我该如何解决这个问题?

4

1 回答 1

2

Refresh方法只是 UI 刷新而不是数据绑定刷新。最好和最简单的方法是使用 aBindingSource作为DataTable数据源,并将BindingSource设置为网格的数据源。通常当您更新时,网格应该DataTable显示新数据,但如果没有发生,您可以调用BindingSource.ResetBindings(false)

代码:

BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = myDataTable;
myGrid.DataSource = bindingSource;

如果出于任何原因更新数据表没有刷新网格,您可以调用:

bindingSource.ResetBindings(false); // put true if your metadata has also changed
于 2012-07-30T00:18:22.173 回答