c# - 使用 COUNT(*) 运行 SQL 查询,以便我们知道有多少记录将通过 DataReader

标签 c# mysql sql ado.net

我有以下用于从 mysql 数据库中提取数据的查询。

SELECT ProductCode, ProductName, ProductCategory
   FROM Product
      WHERE <<Criteria goes here>>

查询返回的数据由 .NET 应用程序使用,我得到了一百万行数据,我正在通过 DataReader 逐一查看这些数据。

现在我必须显示进度条,告诉用户已收到多少百分比的行。这意味着我需要一个总数

一位 friend 建议我添加 COUNT(*) 作为一个额外的列,它将具有重复的数字,但我们不必进行两次往返,一次获取计数,另一次获取行。

SELECT ProductCode, ProductName, ProductCategory, COUNT(*)
   FROM Product
      WHERE <<Criteria goes here>>

当我添加 COUNT(*) 时,mysql 只返回一条记录。 第二,我不确定这是否是个好主意。

请分享你对这件事的了解

最佳答案

您可以使用 SQL_CALC_FOUND_ROWS http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

例如 选择 SQL_CALC_FOUND_ROWS、ProductCode、ProductName、ProductCategory 从产品 在哪里 <>

然后运行此查询以获取不过滤的行数 '选择 FOUND_ROWS();'

关于c# - 使用 COUNT(*) 运行 SQL 查询,以便我们知道有多少记录将通过 DataReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880443/

相关文章:

c# - itunes 正在听

mysql - 连接到数据库时出错 : (using class org. gjt.mm.mysql.Driver)

sql - "right"进行存储过程参数验证的方法

mysql - 如何更新 ID = SELECT (...) 的某些行 - SQL

c# - 在 XNA 中以编程方式序列化 Texture2D

c# - 如何创建和初始化自定义 Xamarin Forms 控件

c# - 文化倒退

android - 使用应用程序的相关数据创建新闻源

mysql - SQL - 计算可变长度的可变移动平均值

c# - 一个 MySQL 查询,将从两个表运行检查,如果 true 显示在 C# datagridview 中