我把一个数据集绑定到一个dataGrid控件,对数据进行了删除行的操作,如果我同时进行增加行的操作的话,就报错说无法访问删除的行.
我在删除的情况下使用语句this.DataSet.Tables[0].AcceptChanges();进行操作的话,就不报错了,但是更新到数据库的时候数据没有更新,还是原来的数据.
有高手能分析下原因吗?

解决方案 »

  1.   

    这个涉及DATATABLE的索引问题,因为删除记录后,记录没了,但是结构还在,索引还在,所以会造成索引定位的不准确,所以记过就是看起来删除的是第一行,但是事实上删除的是别的记录行,所以报错,解决办法是用一个BindingSource,将这个datatable绑定,然后用这个 BindingSource来查找记录:BindingSource BSData=new BindingSource ();
    BSDetail.DataSource = datatable.DefaultView;
    int index = BSData.find(....);