不能通过已删除的行访问该行的信息。

主要原因:在内存中对DataTable进行增行删行等操作后,最后要根据这些操作进行其他一些操作,比如对已删除的行,删除其他表中引用该行的记录。  
   
  可是,当行被删除后,状态为Deleted,不能读取该行的数据了




在明细删除的时候出现如题问题。明细delete中oDataRow.Delete();

解决方法:
在  GridView_List_DataBound 中。访问行的时候加入判断行的状态。
if (oItemDataList.Rows[i].RowState != DataRowState.Deleted)
  {
       。。。。。。。。。。。。。。。
  }
在 主表中间层updataitem()
 for (int i = 0; i < oItemDataList.Rows.Count; i++)
        {
            if (((Sales.OrdFctItemRow)oItemDataList.Rows[i]).RowState != DataRowState.Deleted)
            ((Sales.OrdFctItemRow)oItemDataList.Rows[i]).order_no = order_no;

      }
备注:
Delete();与Remove();区别:delete 将行标志为删除的状态,Remove彻底删除。

原文地址:https://www.cnblogs.com/lgzh3/p/709104.html