C# DataGridView没有';t显示自动计数变量

C# DataGridView没有';t显示自动计数变量,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我有一个表单,其中包含一个按钮和一个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 : (obj

我有一个表单,其中包含一个按钮和一个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被刷新时,我添加的人的代码不会显示,我如何解决这个问题?

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

代码:

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

bindingSource.ResetBindings(false); // put true if your metadata has also changed

我以加载事件的形式使用了这段代码:BindingSource BindingSource=newbindingsource{DataSource=sql.ds.Tables[“etablisement”]};dgv.DataSource=bindingSource;bindingSource.ResetBindings(false);但是代码仍然没有显示!!只有在添加新行后,才能使用
ResetBindings
bindingSource.ResetBindings(false); // put true if your metadata has also changed