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

本文介绍了在使用DataTable时如何正确处理行的删除操作,并给出了具体的解决办法。通过检查行的状态避免访问已被标记为删除的行,同时区分了Delete与Remove方法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要原因:在内存中对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/archive/2007/04/11/709104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值