c# - 如何计算 MySqlDataReader 中的行数?

标签 c# mysql datareader

我已经成功地将我的项目从 odbc.datareader 切换到 mysql.datareader。问题是对于第一个/odbc datareader),AffectedRows 属性即使是纯查询也能正确检索行数。但它不适用于 mysql.datareader,然后是 -1。 所以我看不到如何检索行数,即“结果 View ”。 编辑:我知道它的前向阅读器,但我不明白以下内容:如果在 DBreader=command.ExecuteRader() 行放置一个断点,我可以看到 DBreader 在结果 View 中具有与行一样多的对象应该。怎么跑完就知道了? 谢谢

最佳答案

DataReader 不包含行数的原因是它的计算成本非常高。例如,假设您执行一个查询,返回今年输入但未删除的采购订单:

SELECT * FROM PurchaseOrders 
WHERE PurchaseDt > '2009-01-01'
AND IsDeleted = 0

然后您将此查询与 DataReader 一起使用并读出前 10 行。 SQL Server 在请求时将行“流”到客户端。每当您请求另一行时,SQL Server 将执行查询的下一步。因此,在您实际读出所有行之前,即使 SQL Server 也不知道总行数。

关于c# - 如何计算 MySqlDataReader 中的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1733825/

相关文章:

mysql - 如何在mysql中连接表而不重复列

c# - 将来自数据阅读器的行转换为类型化结果

vb.net - 在 VB.NET 中将 DataReader 的结果存储到数组中

c# - 使用 C# 和存储过程从 SQL Server 检索 VarChar(MAX)

使用游标和临时表时的 MySQL 存储过程性能问题

mysql - MySQL LIKE 查询中大小写的使用

C# :Does Client machine need SQL Server installed on it while connecting to other machine having SQL Server installed on it (the Server machine)

c# - 如何在 Razor View 中将@model 指令更改为不同的模型?

c# - 鼠标交互未显示在 webdriver 屏幕截图中

c# - 初始化语法 : new ViewDataDictionary { { "Name", "Value"} }