如何显式更改ADO.Net DataRow的RowState?

use*_*147 9 c# ado.net

给定一个ADO.Net DataRow,我如何将行的RowState更改AddedModifiedDeleted

我尝试直接设置属性:

myDataSet.Tables[0].Rows[0].RowState = DataViewRowState.ModifiedOriginal;
Run Code Online (Sandbox Code Playgroud)

导致编译器出现以下错误消息:

error CS0200: Property or indexer 'DataRow.RowState' cannot be assigned to -- it is read only
Run Code Online (Sandbox Code Playgroud)

Mik*_*oud 19

虽然有设置方法的RowState明确性质,如SetAdded,SetModifiedDelete,我认为这是更好地理解究竟会自动发生.

如果你需要将其设置RowState为未更改,则调用AcceptChanges该行并从那里开始.如果你需要它是在修改状态,现在没有了,有一个很好的机会,你应该叫AcceptChangesDataRowDataTable在逻辑别的地方-这种方式,当你通过类似的代码进行修改,该行:

row["field"] = "New Value";
Run Code Online (Sandbox Code Playgroud)

它会更改RowStateModified但现在它还有一个基线,即Original行状态,因为您之前已接受了更改.

我的观点是,是的,您可以RowState使用其中一些方法明确设置,但我觉得您可能只需要更多地使用ADO.NET接口.