我在想如果没有连接到 SQLServer,SQLDataReader 不应该工作。
我实验了这个场景。我执行 ExecuteReader,然后停止 SQLServer 服务并尝试迭代 DataReader。我期待的是一个例外,但它却给出了一个又一个结果。理想情况下,DataReader 应该从连接到数据库服务器的流中一次读取一行,如果我们断开数据库服务器的连接,则应该抛出异常?
我不知道,我在这里想念什么。
我强烈怀疑读者一次读取了一批结果。这比一次一行要高效得多(考虑一下单行只有几个字节的情况......当它可以在单个数据包中检索大量行时,您不希望每行一个网络数据包)。它还可能允许数据库尽早释放其内部资源 - 如果数据读取器已读取所有结果(当只有少数结果时),它可以有效地忘记查询。
我怀疑如果您尝试使用返回大量结果的查询进行相同类型的操作,您会得到预期的异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)