有GRID ,点击上面主健所在的单元格得到该单元格的数据,然后我想根据所得到的数据来new一个新的delrow ,这个delrow其实就是我所点的那单元格所在的行,接着在dataset中删除这行,请问如何写?
this.dataSet11.Tables[0].Rows.Remove(delrow)行吗?
这里的delrow怎么得到,用过这样的方法:
DataView vue=new DataView(dataSet11.Tables[0]);
vue.Sort="Bug#";
string cellvalue;
cellvalue=gridView1.GetRowCellDisplayText(hitInfo.RowHandle, hitInfo.Column);
int index=vue.Find(cellvalue);
datarow delrow=this.dataSet11.Tables[0].Rows[index];
但是很明显这里的index不是dataset中的index ,是dataview 中经过排序得到的,不排序又没法查找,显示"查找基于排序顺序来查找行,但未指定任何排序顺序。"

解决方案 »

  1.   

    DataRowView drv = this.BildingContext[ds.Tables[0](grid数据源)].Current as DataRowView;
    ds.Tables[0].Rows.Remove(drv.Row)
      

  2.   

    哈,果然如2楼所说,成功了,在MSDN上我没注意过 "drv.Row" 这样的获取正被查看的 DataRow的用法.
    但现在又有个问题,不能撤消所做的修改,我插入的代码可以撤消,但删除的不行,疑惑中
      

  3.   

    这个问题很严重了,一不小心提交上数据库了,还要去手动修改.修改就不能撤消,奇怪中,这里的REMOVE是默认的AcceptChanges吗?
    private void btnCancelAllUpdate_Click(object sender, System.EventArgs e)
    {
    this.dataSet11.RejectChanges();
    }
    用这样的语句撤消的
      

  4.   

    http://www.syncfusion.com/FAQ/WindowsForms/Default.aspx#44