.net - SqlDataReader 一次仅评估一行

标签 .net sqldatareader

看起来 SqlDataReader 实际上会一次抓取多行

我遇到一种情况,我需要一次抓取一行。 在 SqlDataReader 循环中,我可以使用单独的 SQL 命令更改、插入或删除行。 我遇到的问题是,可能是对 SqlDataReader 预取的数据进行了更改,因此我得到了陈旧的数据。 我真的不需要查看循环中执行的插入,但如果我阅读它们,它不会破坏任何内容。

如何让 SqlDataReader.Read() 实际上一次从数据库读取一行?

最佳答案

SQL Server 将尽可能多的结果集行放入网络数据包中,并尽快将它们发送到客户端。然后,包含结果集行的数据包会缓存在客户端的网络缓冲区中,并由访问驱动程序读取。
如果一一读取并发送给客户端,速度会很慢。

关于.net - SqlDataReader 一次仅评估一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818216/

相关文章:

c# - 哪些因素会影响 ExecuteReader 的持续时间?

.net - 将 Selenium 与 Powershell 结合使用 - 清除输入字段

.net - MVC 验证期间的简单注入(inject)器 “The operation cannot be completed because the DbContext has been disposed”

c# - 在 JSON.NET 中反序列化的转换接口(interface)

c# - 从将动态参数作为输入的 lambda 中获取属性名称

c# - 如何从 SqlConnection 对象中获取 "detach"一个 SqlDataReader?

c# - 介于另一列的值之间

c# - 多么简单的得到;放;在一个类意味着?

c# - 为什么这个指定的转换无效??

c# - SqlDataAdapter.Fill() 与 DataTable.Load()