温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

实现ADO.NET记录集获取记录数量的方法是什么

发布时间:2021-11-24 09:50:09 来源:亿速云 阅读:135 作者:柒染 栏目:编程语言

本篇文章给大家分享的是有关实现ADO.NET记录集获取记录数量的方法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

VC使用ADO技术访问数据表,打开数据表后,获得了ADO记录集,如何获得记录数量?一个小问题,没想到还有点意思,实践完成,总结一下。

方法一、用静态、键集游标方式打开数据表

p_hr = m_pRecordset->Open(_variant_t(bstrQuery),vNull,adOpenStatic,adLockOptimistic,adCmdText);

然后用GetRecordCount()函数,即可获得记录数量。

m_pRecordset->GetRecordCount();
  • 谈谈ADO.NET数据库连接池创建和分配

  • 剖析ADO.NET使用DataAdapter类

  • 简单实用的ADO.NET实体框架详解

  • 浅析ADO.NET实体数据访问和更改

  • 老鸟归纳ADO.NET实体框架功能

另外用键集游标方式也可以获得,adOpenKeyset (键集游标),但是用adOpenDynamic (动态游标)方式,就只会返回-1。多个用户都使用同一张表,且对其进行修改的可能都很大,则***使用adOpenKeyset。如只是浏览, 使用adOpenStatic   可提高性能! 补充:adOpenStatic   静态游标   ,   其它用户的修改对当前用户是不可见的.  adOpenDynamic   动态游标   ,   所有的修改对当前用户是见的.  adOpenKeyset   是前两种的折衷   ,   改对当前用户是见的.   但性能是***的.

方法二、用SQL语句实现

“select   count(*)   from   表名;”,这样就不用关心游标的方式了。

例子如下:

rs->Open("select   COUNT(*)   from   tbUsersInfo",strCnn,    adOpenKeyset,adLockOptimistic,adCmdText);    long   RecordCount;    RecordCount=rs->Fields->GetItem((long)0)->GetValue();

还有一个例子:

m_pRecordset   =   m_pConnection->Execute("SELECT   COUNT(*)   FROM   表名",&RecordsAffected,adCmdText);    _variant_t   vIndex   =   (long)0;      _variant_t   vCount   =   m_pRecordset->GetCollect(vIndex);    CString   message;    message.Format("共有%d条记录",vCount.lVal);    AfxMessageBox(message);

补充:

先将ADO记录集的

CursorLocation   =   adUseClient;

然后就可以了,总之感觉很意思,一个小问题,却有几种不同的解决方法,而且对于不同的数据库,还有点不一样。

以上就是实现ADO.NET记录集获取记录数量的方法是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI