14

给定 ADO.Net DataRow,我如何将行的 RowState 从更改AddedModifiedor Deleted

我尝试直接设置属性:

myDataSet.Tables[0].Rows[0].RowState = DataViewRowState.ModifiedOriginal;

导致来自编译器的以下错误消息:

error CS0200: Property or indexer 'DataRow.RowState' cannot be assigned to -- it is read only
4

1 回答 1

25

尽管有一些方法可以RowState显式设置属性,例如SetAddedSetModifiedDelete但我认为最好了解自动发生的具体情况。

如果您需要将 设置RowState为不变,则调用AcceptChanges该行并从那里开始。如果您需要它处于修改状态,而当前不是,则很有可能您应该调用逻辑中AcceptChangesDataRoworDataTable其他地方 - 这样,当您通过以下代码对行进行修改时:

row["field"] = "New Value";

它将更改为RowStateModified但现在它也有一个基线,即Original行状态,因为您之前已经接受了更改。

我的观点是,是的,您可以RowState使用其中的一些方法显式设置,但我觉得您可能只需要更像预期的那样使用 ADO.NET 接口。

于 2013-03-18T13:40:58.397 回答