给定一个 ADO.Net DataRow
,我如何将行的 RowState 从 Added
更改为 Modified
或 Deleted
?
我尝试直接设置属性:
myDataSet.Tables[0].Rows[0].RowState = DataViewRowState.ModifiedOriginal;
导致编译器出现以下错误消息:
error CS0200: Property or indexer 'DataRow.RowState' cannot be assigned to -- it is read only
虽然有显式设置 RowState
属性的方法,例如 SetAdded
、SetModified
和 Delete
,但我我认为最好了解自动发生的事情。
如果您需要将 RowState
设置为不变,则在该行上调用 AcceptChanges
并从那里开始。如果您需要它处于修改状态,而当前不是,则很有可能您应该在 DataRow
或 DataTable
上调用 AcceptChanges
> 逻辑中的其他地方 - 当您通过如下代码对行进行修改时,就是这样:
row["field"] = "New Value";
它将 RowState
更改为 Modified
但现在它还有一个基线,即 Original
行状态,因为您之前已经接受了更改.
我的观点是,是的,您可以使用其中的一些方法显式设置 RowState
,但我觉得您可能只需要更多地使用 ADO.NET 接口(interface)就像它的目的一样。