首先我通过本地查询本地数据得到一个DataTable的,然后将这个DataTable绑定到DataGridView上显示,界面上有个新增按钮点击后会弹出一个单独窗体进行新增数据操作,当新增后的一条数据成功插入到本地数据库后,我要在当前的DataGridView界面上显示出这条新增的数据(相当于同步),这就产生一个问题,如果我将DataGridView的dataSource先清楚再重新绑定的确是可以实现同步的问题,但我想了一想如果我有几万条或者更多的数据时,我就光新增一条数据就要重新绑定一次数据源其效率一定会是相当的慢,请问各位达人有什么更好的办法实现同步么?且效率上也是很高效的。

解决方案 »

  1.   

    本帖最后由 bdmh 于 2012-04-13 16:05:32 编辑
      

  2.   

    人家说的是新增……dataGridView1.Rows.Add("11","22","33","44"……);
      

  3.   

    本帖最后由 bdmh 于 2012-04-13 16:17:50 编辑
      

  4.   

    1、dataTable1绑定到dataGridView1,
    2、用户添加一条记录(不通过dataGridView1)。
    3、更新到数据库,如果成功则
    4、添加一条记录到dataTable1(自动反映到dataGridView1上)。
      

  5.   

    楼主可以选择这样做:当点击保存的时候你不仅把这些数据保存到数据库中,并且也传到DataGridView的界面上,
    这样的话,在你保存完数据,当前的界面就可以关闭了。剩下的就要在DataGridView的界面处理。
    你只需要自己在后台将传过来的数据拼成一行,然后加入到DataGridView最后一行,需要注意的是,拼行的时候数据一定要与已有的行对应,这样就可以实行你说需要的时间效率了!
    希望能够帮到楼主!
      

  6.   

    你是说用自身的对象去newrow一个么?前提是必须是我数据库执行插入成功后再在内存零时表中newrow这条记录把?
      

  7.   

    而且还可以配合虚拟模式VirtualMode,处理更高效 这个是怎么用的?具体是干嘛的
      

  8.   

    嗯 总上所述这个效率不是很好 我觉得,还是直接对内存零时表操作,在数据库新增成功后执行内存表的newrow方法去实现同步。