在调用RejectChanges之后,RowState值是什么(如果它当前是'已添加')?

时间:2015-01-29 18:33:33

标签: c# asp.net rowstate

所以,我正在c#ASP.Net上做一个考试准备,我偶然发现了一个问题,这看起来很容易,直到我决定检查出来。

"在调用RejectChanges方法之后,当前处于状态的行(RowState)是什么?"

a)未修改

b)分离

c)添加

d)修改

现在,当我第一次想到它时,我假设在数据集合中插入了一行,因此添加了它的状态,并在使用RejectChanges方法撤消更改并删除新添加的行时,我假设集合的状态是未修改的,并且行的实际状态将是Detached,因为它不再出现在集合中。

然后我进一步调查了这一点,并从MSDN中找到了:

"当调用RejectChanges时,将删除行状态为Added的所有行。其余行的行状态为Unchanged"

因此,a)未修改=未更改。

然后,我检查了一行如何获得状态Unchanged:

"新创建的行的RowState设置为Detached。通过调用Add方法将新DataRow添加到DataRowCollection之后,RowState属性的值设置为Added。

还为使用Remove方法从DataRowCollection中删除的行或Delete方法后跟AcceptChanges方法的行设置了Detached。"

因此,由此得出它应该是b)分离的。

PS:对于诚实而言,这个问题并不重要,但我对实际答案(以及背后的理由)以及我最初的逻辑是否真实感到好奇。

感谢您抽出宝贵时间,感谢抱歉。

0 个答案:

没有答案