C/S模式,datagridview1绑定到了dataset的table[0]上。
数据库中增加一条记录A后,我根据A的主键,在table[0]中添加了对应的row。
datagridview就出现了一种怪怪的情况,假设这个row正好加在了当前窗口的工作区,如:当前窗口显示了第20-30条记录,这个记录正好加在第25条的位置,如果不调用datagridview.refresh(),新加的记录在界面不会显示出来,原来的第25条记录点击后也不能被选中。调用refresh后就没问题了。有没有既不调用datagridview.refresh(),又能将新记录添加到界面的方法?貌似在这种情况下,不能直接对datagridview.rows进行add和remove操作

解决方案 »

  1. 貌似dataset没有更新 所以页面显示的是以前的绑定数据
      

  2. 加一个bindingsource控件,datagridview数据源指向它,它的数据源指向dataTable
      

  3. ==================
     DataTable dt = this.dataGridView1.DataSource as DataTable;
                DataRow dr = dt.NewRow();
                dr[0] = 8;
                dr[1] = 8;
                dt.Rows.InsertAt(dr, 8);
    我试了一下 好像没有问题啊 .. 你是不是 对DAtaGridView 的属性做了 什么限制..
      

类似问题 »