2013-03-18 68 views
6

给定一个ADO.Net DataRow,我如何将行的RowState从Added更改为ModifiedDeleted如何显式更改ADO.Net DataRow的RowState?

我尝试设置直接属性:

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

导致从编译器下面的错误消息:

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

我为什么downvoted这个问题:http://meta.stackexchange.com/a/149138/133242 – 2013-03-18 13:26:00

+0

你尝试过什么** **?先显示你的努力..并请阅读[常见问题]和[问]几次.. – 2013-03-18 13:26:04

+0

@SonerGönülsory我没有提到。是的,我尝试了很多提到的问题之一。 – user1387147 2013-03-18 13:27:37

回答

15

虽然存在用于显式设置RowState属性,像SetAdded方法,SetModifiedDelete,我认为最好是理解自动发生的事情。

如果您需要将RowState设置为不变,请在该行上拨打AcceptChanges并从那里开始。如果你需要它是在修改状态,现在没有了,有一个很好的机会,你应该已经在DataRowDataTable其他地方的逻辑称为AcceptChanges - 这样一来,当你通过类似的代码进行修改,该行:

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

它改变了RowStateModified但现在它也有一个底线,在Original行状态,因为你已经接受以前的变化。

我在这里指出的是,您可以使用其中一些方法明确设置RowState,但我觉得您可能只需要使用ADO.NET接口就可以了。

相关问题