怎样获得sqlDataReader里面有多少条记录呢?

dotnet90 2004-07-17 05:42:10
怎样获得sqlDataReader里面有多少条记录呢?
...全文
1160 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2004-07-18
  • 打赏
  • 举报
回复
select count(*) from 你的表名
就可以DataReader只是一个向前读取数据的游标
webdiyer 2004-07-17
  • 打赏
  • 举报
回复
如果想一次获取记录总数并且将数据绑定到数据显示控件上,那么还是用DataAdapter填充DataSet或DataTable的好,DataReader只是一个只读的向前移动的数据指针,调用一次Read()方法就象前读一条数据,它无法返回记录总数,除非用一个循环边读数据边计算记录总数,那样还不如用一条 "select count(*) from mytable" 语句返回记录总数更合适!
xtrstz 2004-07-17
  • 打赏
  • 举报
回复
Reader本身与记录数无关,有关的是其SQL的Command.Text指令,即select count(*)
daqingshu 2004-07-17
  • 打赏
  • 举报
回复
SqlDataReader sqlDR;
SqlCommand sqlCMD;
string strSQL,Source;

public int RsCount()//计算共有多少条记录
{


strSQL="select count(*) as rs from yourtable";

conn = new SqlConnection(Source);
conn.Open();
sqlCMD=new SqlCommand(strSQL,conn);
sqlDR=sqlCMD.ExecuteReader();
if(sqlDR.Read())
i=Convert.ToInt16(sqlDR[0].ToString());
else
i=0;
conn.Close();

return i;

}
Overriding 2004-07-17
  • 打赏
  • 举报
回复
reader.RecordsAffected
这个东西对于除了select操作以外的是有效的,例如:delete ,update等。
也可以用select count(*) as totalcount
Seeko0 2004-07-17
  • 打赏
  • 举报
回复
SqlDataReader.RecordsAffected 属性 [C#]请参见
SqlDataReader 类 | SqlDataReader 成员 | System.Data.SqlClient 命名空间 | 获取执行 Transact-SQL 语句所更改、插入或删除的行数。

[C#]
public virtual int RecordsAffected {get;}

属性值
已更改、插入或删除的行数;如果没有任何行受到影响或语句失败,则为 0;-1 表示 SELECT 语句。

实现
IDataReader.RecordsAffected

备注
直到读取了所有行并关闭 SqlDataReader 时,才会设置 RecordsAffected 属性。

该属性的值是累积值。例如,如果以批处理模式插入两个记录,则 RecordsAffected 的值将为二。

当 SqlDataReader 关闭后,只能调用 IsClosed 和 RecordsAffected 属性。

//如果想获取select 的行数,可以使用 count(*)进行数据库端统计
viena 2004-07-17
  • 打赏
  • 举报
回复
sqlDataReader不是把数据全存在内存里的,它每次读一条记录,可以用另外一个command执行select count ……莱得到记录数

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧