DataRow 删除
更新:November 2007
可以使用两个方法从 DataTable 对象中删除 DataRow 对象:DataRowCollection 对象的 Remove 方法和 DataRow 对象的 Delete 方法。Remove 方法从 DataRowCollection 中删除 DataRow,而 Delete 方法只将行标记为删除。当应用程序调用 AcceptChanges 方法时,才会发生实际的删除。通过使用 Delete,您可以在实际删除之前先以编程方式检查哪些行标记为删除。如果将行标记为删除,其 RowState 属性会设置为 Deleted。
在将 DataSet 或 DataTable 与 DataAdapter 和关系型数据源一起使用时,用 DataRow 的 Delete 方法移除行。Delete 方法只是在 DataSet 或 DataTable 中将行标记为 Deleted,而不会移除它。而 DataAdapter 在遇到标记为 Deleted 的行时,会执行其 DeleteCommand 方法以在数据源中删除该行。然后,就可以用 AcceptChanges 方法永久移除该行。如果使用 Remove 删除该行,则该行将从表中完全移除,但 DataAdapter 不会在数据源中删除该行。
DataRowCollection 的 Remove 方法采用 DataRow 作为参数,并将其从集合中移除,如下例所示。
workTable.Rows.Remove(workRow)
workTable.Rows.Remove(workRow);
作为对比,以下示例演示了如何调用 DataRow 上的 Delete 方法来将其 RowState 改为 Deleted。
workRow.Delete
workRow.Delete();
如果将行标记为删除,并且调用 DataTable 对象的 AcceptChanges 方法,该行就会从 DataTable 中移除。相比之下,如果调用 RejectChanges,行的 RowState 就会恢复到被标记为 Deleted 之前的状态。
说明: |
---|
如果 DataRow 的 RowState 为 Added,则意味着已将其添加到表中,然后会将其标记为 Deleted,并从表中移除。 |