看起来 SqlDataReader 实际上会一次抓取多行
我遇到一种情况,我需要一次抓取一行。 在 SqlDataReader 循环中,我可以使用单独的 SQL 命令更改、插入或删除行。 我遇到的问题是,可能是对 SqlDataReader 预取的数据进行了更改,因此我得到了陈旧的数据。 我真的不需要查看循环中执行的插入,但如果我阅读它们,它不会破坏任何内容。
如何让 SqlDataReader.Read() 实际上一次从数据库读取一行?
最佳答案
SQL Server 将尽可能多的结果集行放入网络数据包中,并尽快将它们发送到客户端。然后,包含结果集行的数据包会缓存在客户端的网络缓冲区中,并由访问驱动程序读取。
如果一一读取并发送给客户端,速度会很慢。
关于.net - SqlDataReader 一次仅评估一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818216/