在DataGridView中有很多数据,现在我修改了部分数据,不是一行(DataGridView中有一个CheckBox的列),现在如果更新就不是一行了,我怎么去更新我已经修改过的数据?怎么知道哪些是我修改过的并去怎么更新?
(不使用Transaction,因为要求更新数据是批量的完全的,如果失败回滚等于没有更新)

解决方案 »

  1.   


    做成一个STRING SQL!应该传入数据库中处理吧!!!
      

  2.   

    先从DataGridView中取所有的数据到  DataTable dt 中再 DataTable changedTalbe;
    changedTalbe = dt.GetChanges(DataRowState.Unchanged);
    changedTalbe 是没有发生变化的数据//新增的
    changedTalbe = dt.GetChanges(DataRowState.Added);
    //修改的
    changedTalbe = dt.GetChanges(DataRowState.Modified);
    //删除的
    changedTalbe = dt.GetChanges(DataRowState.Deleted);
      

  3.   


    我得到被修改过的Row后,我就可以把该Row的数据放到一个定义好的实体Model里然后循环更新了?我不太看懂
    changedTalbe = dt.GetChanges(DataRowState.Modified);
    这是什么?把修改过的dt直接赋给changedTable这样好像不对吧,我原来将两个DataTable这样赋值会出错不用循环把dt里的数据给changedTable吗?
      

  4.   

    //修改的 
    changedTalbe = dt.GetChanges(DataRowState.Modified); changedTalbe 就会是你修改的那几条记录呀!你再把这几条记录更新修改不就好了么?
      

  5.   

    DataSet custDS = DataView的数据源,
    //新增的 
    changedTalbe = custDS.GetChanges(DataRowState.Added); 
    //修改的 
    changedTalbe = custDS.GetChanges(DataRowState.Modified); 
    //删除的 
    changedTalbe = custDS.GetChanges(DataRowState.Deleted); //更新数据集到数据库中
    DataAdapter.Update(changedTalbe);