所以,我在 c# ASP.Net 上做一个考试准备,我偶然发现了一个问题,这似乎很简单,直到我决定检查一下。
“在调用 RejectChanges 方法后,当前处于已添加状态的行 (RowState) 的状态是什么?”
a) 未修改
b) 分离式
c) 添加
d) 修改
现在,当我第一次想到它时,我假设一行被插入到数据集合中,它的状态因此被添加,并且在使用 RejectChanges 方法撤销更改并因此删除新添加的行时,我假设集合将是未修改的,并且行的实际状态将是分离的,因为它不再存在于集合中。
然后我对此进行了进一步调查,并从 MSDN 中发现:
“当 RejectChanges 被调用时,所有行状态为已添加的行都将被删除。其余行的行状态为未更改”
因此,从这里,a) 未修改 = 未更改。
但随后,我检查了一行如何获得状态不变:
"新建行的RowState设置为Detached。通过调用Add方法将新DataRow添加到DataRowCollection后,RowState属性的值设置为Added。
还为已使用 Remove 方法或 Delete 方法后跟 AcceptChanges 方法从 DataRowCollection 中删除的行设置了 Detached。"
因此,由此得出它应该是 b) 分离的。
PS:老实说,这个问题并不重要,但我真的很好奇实际答案(及其背后的推理)以及我最初的逻辑是否正确。
感谢您的时间,并为文字墙感到抱歉。