當修改了這個DataRow后,這個DataRow狀態轉為Modified,當用DataRow.Delete()方法刪除DataRow后,DataRow狀態將轉為Deleted,不過此行還存在在DataTable中的,只是狀態改變了,這時用DataTable.Rows.Count查看行數,跟刪除前是一樣的。
只有在調用了DataTable.Remove(DataRow)方法后,此DataRow才被從DataTable移除,狀態也回復到Detached孤立狀態。但對于遠程的Remoting的數據集DataTable.Remove(DataRow)方法不能從測表中移出;只能用DataRow.Delete()方法加 AcceptChanges()方法
MSDN對DataRow.Delete 方法的解釋:如果行的 RowState 是“Added”,則該行將從表中移除。在使用 Delete 方法后,RowState 變成“Deleted”。在您調用 AcceptChanges 之前,它一直保持“已刪除”。可通過調用 RejectChanges 取消刪除行。
用Delete(),DataSet的HasChanges()=true;
用Remove(),DataSet的HasChanges()=false;
本文系轉載http://blog.csdn.net/ojekleen/archive/2007/10/22/1837058.aspx