共用方式為


DataRow 刪除

有兩種方法可以用來從 DataTable 物件中刪除 DataRow 物件:使用DataRowCollection物件的Remove方法,或使用DataRow物件的Delete方法。 雖然Remove方法會從DataRowCollection中刪除DataRow,但Delete方法只會標記該數據列準備刪除。 當應用程式呼叫 AcceptChanges 方法時,就會發生實際移除。 藉由使用 Delete,您可以透過程序設計方式檢查哪些數據列標示為要刪除,然後再實際移除它們。 當資料列標示為刪除時,其 RowState 屬性會設定為 Delete

在使用 foreach 循環遍歷 DataRowCollection 物件時,不應呼叫 DeleteRemoveDelete 也不會 Remove 修改集合的狀態。

搭配 DataAdapter 和關係型數據源使用 DataSetDataTable 時,請使用 DataRowDelete 方法移除數據列。 Delete 方法會將數據列標示為 DataSetDataTable 中的 Deleted,但不會將其移除。 相反地,當 DataAdapter 遇到標示為 Deleted 的數據列時,它會執行其 DeleteCommand 方法,以刪除數據源上的數據列。 然後可以使用 AcceptChanges 方法永久移除數據列。 如果您使用 Remove 刪除資料列,則會從資料表完全移除數據列,但 DataAdapter 不會刪除資料源的數據列。

DataRowCollectionRemove 方法會採用 DataRow 做為自變數,並將它從集合中移除,如下列範例所示。

workTable.Rows.Remove(workRow)  
workTable.Rows.Remove(workRow);  

相反地,下列範例示範如何在DataRow上呼叫Delete方法,將其RowState變更為 Deleted

workRow.Delete  
workRow.Delete();  

如果數據列標示為要刪除,而且您呼叫 DataTable 物件的 AcceptChanges 方法,則會從 DataTable 中移除該數據列。 相反地,如果您呼叫 RejectChanges,則數據列的 RowState 會還原為在標示為 Deleted 之前的狀態。

備註

如果 DataRowRowState新增,表示它剛新增至數據表,然後標示為 Deleted,則會從數據表中移除。

另請參閱