我的目的:一个DataGridView中显示了用户的基本信息,我用弹出窗口添加一条记录信息,当添加到数据库成功后,要在DataGridView中显示出刚才添加的那条记录,但不想重新读取数据,重新绑定DataGridView。只是把那条记录加到DataGridView中即可,
我的方案:在弹出窗口中加委托,DataGridView的窗口加处理: private void AddRow(Mod_PatientsInfo mp)
{
DataGridViewRow dr = dgv.RowTemplate;
dr.SetValues(new object[] { mp.xName, mp.xIdCard, mp.xSex, mp.xNation, mp.xBirthPlace,
mp.xBirthday,mp.xAddress,mp.xTel,"",""});
dgv.Rows.Add(dr);
//dgv.Update();
}运行时提示错误:
当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。
这个错误怎么解决?或者有没有其他的解决方法?
我的方案:在弹出窗口中加委托,DataGridView的窗口加处理: private void AddRow(Mod_PatientsInfo mp)
{
DataGridViewRow dr = dgv.RowTemplate;
dr.SetValues(new object[] { mp.xName, mp.xIdCard, mp.xSex, mp.xNation, mp.xBirthPlace,
mp.xBirthday,mp.xAddress,mp.xTel,"",""});
dgv.Rows.Add(dr);
//dgv.Update();
}运行时提示错误:
当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。
这个错误怎么解决?或者有没有其他的解决方法?
DataTable dt=(DataTable)dgv.DataSource;
然后把你要加的那一行加到dt的下面去。。
DataRow dr=dt.NewRow();
dr["列1"]="aaa";
.....
dt.Rows.Add(dr);
dtAll.AcceptChanges();
再把dt表付给dgvdgv.DataSource=dt;
然后改变数据源
再将改变后的数据源赋给dgv.DataSource