两种方法实现ADO.NET记录集获取记录数量

学习ADO.NET时,你可能会遇到ADO.NET记录集问题,这里将介绍ADO.NET记录集问题的解决方法,在这里拿出来和大家分享一下。VC使用ADO技术访问数据表,打开数据表后,获得了ADO记录集,如何获得记录数量?一个小问题,没想到还有点意思,实践完成,总结一下。

创新互联-专业网站定制、快速模板网站建设、高性价比江南网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式江南网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖江南地区。费用合理售后完善,10多年实体公司更值得信赖。

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

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

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

 
 
  1. m_pRecordset->GetRecordCount(); 

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

方法二、用SQL语句实现

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

例子如下:

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

还有一个例子:

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

补充:

先将ADO记录集的

 
 
  1. CursorLocation   =   adUseClient;    

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

网页标题:两种方法实现ADO.NET记录集获取记录数量
文章链接:http://www.shufengxianlan.com/qtweb/news12/204312.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联