将DataGridView和数据库中一张表绑定后,往DataGridView里添加一个新行并利用adapter.update保存到数据库后,如何刷新所插入的新行对应的自动递增id呢?之前我在adapter.update之后重新加载过一遍那个datatable,但是如果数据量一大的话不可能每次插入都重新加载吧

解决方案 »

  1.   


    现在不是分不分页的问题,情况是这样的,数据库里的表有个自动递增的列(先叫id吧),然后绑定到datagridview之后,每次在datagridview里面新增一行记录时,id列都会显示一个负数(因为没最终提交的数据库,不知当前递增后的id是什么),然后commit到数据库之后,数据库确实新增了对应的记录,而且也正确的赋值了id,但是datagridview里的id列仍然保持负数不变,也就是commit到数据库之后,datagridview里面的datatable不知道新增的记录的id列,从而出现问题我想知道的是,如何commit到数据库的同时又能同步datagridview里面的id列,因为用了datagridview来绑定数据表,所以无论插入、删除、修改记录都只用一个update()函数就完成,难道得通过datatable.GetChange(),把插入的记录获取出来,然后一条一条的遍历?
      

  2.   

      每次你保存的时候,你写一个方法,就是把datagridview中的最后的一行的id赋值。这样保存进去是不是就有了?
      

  3.   


    这个我之前也想过,不过对datagridview的操作(包括插入、修改、删除)都可以只用一个adapter提供的update()方法来实现,不用手工写代码,那是不是要专门为了插入的记录单独跳出来,遍历的插入,每插入一条记录就获取一下最新的id,然后更新到datatable里面呢?