无法获取DataSet删除行的值的问题

//染整分缸进仓 
 if (ds.HasChanges(DataRowState.Deleted))//删除的行
  {
      drDelete = ds.Tables[0].Select(null, null, DataViewRowState.Deleted);
  }

foreach (DataRow dr in drDelete)
{
    rfglDDL.DTData[j] = new ServiceRFGL.DTStru();
    rfglDDL.DTData[j].Line = int.Parse(pageCommon.StringIsNull(dr["Line", DataRowVersion.Original]));//行号
    rfglDDL.DTData[j].TRAN_NO = txtRef_NO.Text.Trim();
    rfglDDL.DTData[j].H_Line = int.Parse(pageCommon.StringIsNull(dr["H_Line", DataRowVersion.Original]));
    rfglDDL.DTData[j].BZ_State = 3; //辅助标志1:新增2:修改3 删除 (表:无该字段XSC 2008-02-19)
    j++;                   
}
网上找的说明

(1)DataSet中的数据如果发生了更改,同时有添加、修改、删除的数据,是否能够一次性的更新到数据库呢呢?   
  我只会一行一行的更新,而且首先检查该行状态是"Added"、"Modified"、"Deleted",然后调用不同的存储过程,并且将各列的数据作为参数传递给存储过程。感觉累死了,最主要的是感觉这样做性能好象不会好(DataSet有其它更新方法吗?)。   
    
  (2)如果DataSet的数据已经被Deleted,不能用DataRow获取该行数据了,那怎么知道要删除哪一行呢?   

以下代码示例显示了表中所有已删除行的值。已删除的行没有   Current   行版本,因此在访问列值时必须传递  
 DataRowVersion.Original。   
    
  DataTable   catTable   =   catDS.Tables["Categories"];   
    
  DataRow[]   delRows   =   catTable.Select(null,   null,   DataViewRowState.Deleted);   
    
  Console.WriteLine("Deleted   rows:/n");   
    
  foreach   (DataColumn   catCol   in   catTable.Columns)   
      Console.Write(catCol.ColumnName   +   "/t");   
  Console.WriteLine();   
    
  foreach   (DataRow   delRow   in   delRows)   
  {   
      foreach   (DataColumn   catCol   in   catTable.Columns)   
          Console.Write(delRow[catCol,   DataRowVersion.Original]   +   "/t");   
      Console.WriteLine();   
  }    
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值