调用这句话时,有时只是给这个行打Deleted标记,DataTable.Rows集合中仍有这一行,有时就没了,找不到规律,有人知道为什么吗?
说明
1.内存中生成的DataSet,与数据库无关
2.没调用过AcceptChange方法

解决方案 »

  1.   

    你补丁一下 .net 2.0 sp1 , 可能就好了.2.0 最新补丁是 sp2 了, 也可以直接上 sp2.
      

  2.   

    datarow.delete后要将dataset提交一下更改,那么dataset中所有做了删除标记的行就会被删除了。dataset.AcceptChanges();
    dataTable.AcceptChanges();
    在进行完添加、删除修改等操作后一定要执行该方法提交,否则修改不能生效,具体请查阅MSDN。调用后就会删除了,如果你有时候行存在,有时候又不存在,那说明系统在执行某些操作的时候自动提交了更改。
      

  3.   

    del 后记得AcceptChanges(); 
      

  4.   

    如果该行的 RowState 为 Added,则在调用 AcceptChanges 时,RowState 将变为 Detached,并且将从表中移除该行。在对现有 DataRow 使用 Delete 方法后,RowState 将变为 Deleted。在您调用 AcceptChanges 之前,它一直保持“已删除”。可通过调用 RejectChanges 取消删除行。table.AcceptChanges();
      

  5.   

    经检查,凡是通过WebService传入的DataSet(有序列化/反序列化的操作),调用Row.Delete的时候就不会从RowCollection中删除此行,造成错误。打补丁应该可以解决,谢谢各位。