日期:2014-05-18  浏览次数:20949 次

一个对数据处理很困惑的问题
代码如下:  
  private   void   btnTest_Click(object   sender,   EventArgs   e)
                {
                        DataTable   dt   =   (DataTable)gridControl1.DataSource;
                        DataView   dv   =   new   DataView(dt);
               
                        dv.RowStateFilter   =   DataViewRowState.Deleted;
                      //this.gridControl1.DataSource   =   dv;
                        for(int   i   =   0;i <dv.Table.Rows.Count;i++)
                        {
                           
                                  MessageBox.Show(   dv.Table.Rows[i][ "AID "].ToString());
                                    //异常提示:不能通过已删除的行访问该行的信息。
                        }
                }
    本人对gridControl1这个控件进行了删除的操作(数据没有提交到服务器),我想知道删除的数据记录,于是就写了上面的方法,当//this.gridControl1.DataSource   =   dv;
这条语句不注释掉时,发现gridControl1可以显示已经删除的记录,但是当我想获得这删除记录的AID主键时,却发现有异常,提示不能通过已删除的行访问该行的信息。请问大家有什么好的办法解决啊!

------解决方案--------------------

//this.gridControl1.DataSource = dv;
for(int i = 0;i <dv.Table.Rows.Count;i++)
{

MessageBox.Show( dv.Table.Rows[i][ "AID "].ToString());
//异常提示:不能通过已删除的行访问该行的信息。
}
dv.RowStateFilter = DataViewRowState.Deleted;

?