试试加上这句!
this.dataTable1.AcceptChanges();

解决方案 »

  1.   

    错在这里
    ======================================
     //在DataTable中删除选定行
    this.dataTable1.Rows.RemoveAt(indexDel);
    RemoveAt方法会把当前的记录从DataTable中直接移除,并不是修改RowState,
    所以你使用DataAdapter.Update()进行更新的时候他并不知道DataTable中有一条记录被删除,
    修改如下:
    DataRowView drv = (DataRowView)this.BindingContext[this.dataGrid1.DataSource,
    this.dataGrid1.DataMember].Current;
    drv.Row.Delete();在使用 Delete 方法后,RowState 变成“已删除”。在您调用 AcceptChanges 之前,它一直保持“已删除”。调用DataAdapter.Update(dataTable);把当前改变了的记录更新到数据库(包括删除修改新增,由RowState来区分),
    接着调用DataTable.AcceptChanges()修改DataTable的数据(前面的删除添加只是改变RowState,并没有真正的改变)。
    如果是删除,到这一步就相当于执行了RemoveAt或RemoveAt的操作。
      

  2.   

    还有问题请在上面留言,
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx