C# 使用COUNT(*)运行SQL查询,这样我们就知道有多少记录将通过DataReader访问
我使用以下查询从mysql数据库中提取数据C# 使用COUNT(*)运行SQL查询,这样我们就知道有多少记录将通过DataReader访问,c#,mysql,sql,ado.net,C#,Mysql,Sql,Ado.net,我使用以下查询从mysql数据库中提取数据 选择ProductCode、ProductName、ProductCategory 从产品 哪里 查询返回的数据被.NET应用程序使用,我通过DataReader一行一行地查看了一百万行 现在我必须显示进度条,告诉用户已经收到了多少百分比的行。这意味着我需要一个总数 一位朋友建议我添加COUNT(*)作为一个额外的列,它将有重复的数字,但我们不必做两次往返,一次获取COUNT,另一次获取行 选择ProductCode、ProductName、Prod
选择ProductCode、ProductName、ProductCategory
从产品
哪里
查询返回的数据被.NET应用程序使用,我通过DataReader一行一行地查看了一百万行
现在我必须显示进度条,告诉用户已经收到了多少百分比的行。这意味着我需要一个总数
一位朋友建议我添加COUNT(*)作为一个额外的列,它将有重复的数字,但我们不必做两次往返,一次获取COUNT,另一次获取行
选择ProductCode、ProductName、ProductCategory、COUNT(*)
从产品
哪里
当我添加COUNT(*)时,mysql只返回一条记录。
第二,我不确定这是否是个好主意
请分享您对此的了解,谢谢在完全创建答案集之前,DBMS可能会开始向客户端返回行,那么获得100%正确值的唯一方法是使用
SELECT COUNT(*) FROM (your query) x;
在运行查询或将count用作窗口函数之前,MySQL不支持此操作:
SELECT ProductCode, ProductName, ProductCategory, COUNT(*) OVER ()
FROM Product
WHERE <<Criteria goes here>>
选择ProductCode、ProductName、ProductCategory、COUNT(*)超过()
从产品
哪里
数据库管理系统可能会在完全创建答案集之前开始向客户端返回行,那么获得100%正确值的唯一方法是使用
SELECT COUNT(*) FROM (your query) x;
在运行查询或将count用作窗口函数之前,MySQL不支持此操作:
SELECT ProductCode, ProductName, ProductCategory, COUNT(*) OVER ()
FROM Product
WHERE <<Criteria goes here>>
选择ProductCode、ProductName、ProductCategory、COUNT(*)超过()
从产品
哪里
您可以使用SQL\u CALC\u FOUND\u行
e、 g。
选择SQL\u CALC\u FOUND\u行、ProductCode、ProductName、ProductCategory
从产品
在哪里
然后运行此查询以获取行数而不进行筛选
'选择找到的行();' 您可以使用SQL\u CALC\u FOUND\u行 e、 g。 选择SQL\u CALC\u FOUND\u行、ProductCode、ProductName、ProductCategory 从产品 在哪里 然后运行此查询以获取行数而不进行筛选
'选择找到的行();' 假设您在
数据表中加载检索到的记录,只需检查数据表.Rows.Count()
属性以查看您有多少记录。假设您在数据表中加载检索到的记录,只需检查数据表.Rows.Count()
property查看您有多少。很有趣。我必须找到一种方法将其安装到MySqlDataReader中。但感谢分享。我试图将其放入输出参数,但参数值返回空值。显然,那个说直到datareader关闭才设置输出参数的人是对的。很有趣。我必须找到一种方法将其安装到MySqlDataReader中。但感谢分享。我试图将其放入输出参数,但参数值返回空值。显然,关于datareader关闭前未设置输出参数的人是对的。SQL Serveroutput
参数值在datareader关闭后才可用。(.)存储过程可以返回多个记录集,例如,一个记录集带有计数,另一个记录集带有数据,但这在这里可能没有帮助。当返回的行数较少时,可以将它们缓存在临时表或表变量中,以便首先返回计数。是否可以执行快速Count()
以提供足够精确的值来显示完成百分比?我使用的是mysql而不是SQL Server SQL Server输出
参数值在关闭DataReader
后才可用。(.)存储过程可以返回多个记录集,例如,一个记录集带有计数,另一个记录集带有数据,但这在这里可能没有帮助。当返回的行数较少时,可以将它们缓存在临时表或表变量中,以便首先返回计数。是否可以执行快速的Count()
,以提供足够精确的值来显示完成百分比?我使用的是mysql而不是SQL Server。我使用的是DataReader。@fahadash:将查询结果放入datatable中,然后处理掉。这不是开销吗?因为为了构建datatable,我必须遍历所有读卡器的记录,如果我要遍历读卡器,我还不如在收到记录时处理这些记录?@fahadash:当DataReader
允许您遍历记录时,命令对象已经执行,服务器已经返回了结果。没有更多的“开销”需要担心,但问题是,当读者准备好的时候;所有的行都下载到客户机上了吗?我使用的是DataReader。@fahadash:将查询的结果放入datatable中,然后处理掉。这不是开销吗?因为为了构建datatable,我必须遍历所有读卡器的记录,如果我要遍历读卡器,我还不如在收到记录时处理这些记录?@fahadash:当DataReader
允许您遍历记录时,命令对象已经执行,服务器已经返回了结果。没有更多的“开销”需要担心,但问题是,当读者准备好的时候;是否将所有行下载到客户端计算机?