给定一个ado.netDataRow
,如何将行的行状态从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
,然后从那里开始。如果您需要它处于已修改状态,而当前不是,那么很有可能您应该在逻辑中的其他位置调用AcceptChanges
或DataRow
上的DataTable
-当您通过如下代码对行进行修改时:
row["field"] = "New Value";
它将
RowState
更改为Modified
,但现在它还有一个基线,即Original
行状态,因为您以前已经接受了这些更改。我的观点是,是的,您可以使用其中一些方法显式地设置
RowState
,但我觉得您可能只需要使用ado.net接口,使其更像预期的那样。关于c# - 如何显式更改ADO.Net DataRow的RowState? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15477962/