DataRow 删除

更新:November 2007

可以使用两个方法从 DataTable 对象中删除 DataRow 对象:DataRowCollection 对象的 Remove 方法和 DataRow 对象的 Delete 方法。Remove 方法从 DataRowCollection 中删除 DataRow,而 Delete 方法只将行标记为删除。当应用程序调用 AcceptChanges 方法时,才会发生实际的删除。通过使用 Delete,您可以在实际删除之前先以编程方式检查哪些行标记为删除。如果将行标记为删除,其 RowState 属性会设置为 Deleted

在将 DataSetDataTableDataAdapter 和关系型数据源一起使用时,用 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 之前的状态。

说明:

如果 DataRowRowStateAdded,则意味着已将其添加到表中,然后会将其标记为 Deleted,并从表中移除。

请参见

参考

DataRow

DataRowCollection

DataTable

其他资源

在 DataTable 中处理数据