所以,我正在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:对于诚实而言,这个问题并不重要,但我对实际答案(以及背后的理由)以及我最初的逻辑是否真实感到好奇。感谢您抽出宝贵时间,感谢抱歉。