本篇文章给大家分享的是有关实现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记录集获取记录数量的方法是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。