主要原因是 DataReader 在打开使用时,一个 SqlConnection 只允许打开一个 DataReader,在开启另一个 DataReader 时,必须将前面一个先 Close 掉。
在使用快照隔离实例(一)中就出现过这样的问题,错误是在
transaction2.Commit();
中,我们在只要在其前面加上语句:
reader2.Close();
即可解决错误。