datagradView绑定了一个datatable后,datatable用了delete方法并且用了acceptchanges()方法,调用update的时候数据库没更新到。    不调用acceptchanges() 能更新,(标记不标记的问题就不提了)现在的需要是要每时得到真是的datatable 并且能随时能调用dataAdapter的update 方法来更新数据库,要如何解决。我之前试过用一个集合来随机记录delete了的数据的编号,(每行数据都有一个字段是编号),每次update之前先直接用一个command对象来把之前要删的都删了。在一般情况可行 但是,比如当我在datatable加上几新行,然后在删掉最后一行的时候,在删除的那一行上面新加的都没更新进数据库里,怎么回事command

解决方案 »

  1.   

    现在的需要是要每时得到真是的datatable 并且能随时能调用dataAdapter的update 方法来更新数据库,要如何解决。我之前试过用一个集合来记录delete了的数据的编号,(每行数据都有一个字段是编号),每次update之前先直接用一个command对象来把之前要删的都删了。在一般情况可行 但是,比如当我在datatable加上几新行,然后在删掉最后一行的时候,在删除的那一行上面新加的都没更新进数据库里,怎么回事
      

  2.   

    已经知道原因了。  因为调用了accept方法到时row新增的不能update进去。  直接用remove解决了
      

  3.   

    当对 DataSet 调用 AcceptChanges 时,任何仍处于编辑模式的 DataRow 对象都将成功结束其编辑。每个 DataRow 的 RowState 属性也会更改;Added 和 Modified 行变为 Unchanged,而 Deleted 行则被移除。
      

  4.   

    你的问题表述真够乱的,哪有人会先acceptchanges后去更新数据库的?正确的顺序是更新完数据库才去acceptchanges,表示更新完毕。也许你不想用DataTable 的默认更改标志,那么就别用dataAdapter的update 方法来更新数据库,update方法是依赖更改标志的,不能随心所欲。