VC中数据库--ADO编程

用ADO方法访问数据库主要有两步:首先建立数据库连接,然后打开数据集。打开的数据集就是访问的数据。

一步一步看,先看数据库的建立:

  1. //定义数据库对象
  2. CADODatabase m_Data;
  3. //定义数据集指针
  4. CADORecordset* pAdo;
  5. //设定打开字符串,前面一部分字符串操作是固定模板,就是将数据操作和文件路径相关联
  6. CString strPath = _T("Provider = Microsoft.JET.OLEDB.4.0;Data Source =") + 
  7.     /*Your database file'address like this:"e://demo//ADO//*/ + _T("data.mdb");
  8. //打开数据库
  9. if (!m_Data.Open(strPath))
  10. {
  11.     AfxMessageBox(_T("Database open error!"));
  12.     return ;
  13. }
  14. //建立数据集
  15. pAdo = new CADORecordset(&m_Data);//参数就是刚才打开的数据库对象的指针
  16. //进行数据查询操作,假定数据库里有"userinfo"这样一个表,通过ADO类的Open函数就能
  17. //访问表里满足条件的数据
  18. //表userinfo的数据为:ID(自动编号),UserName,UserAge,Sex
  19. CString mData[4];
  20. mData[0] = _T("ID");
  21. mData[1] = _T("UserName");
  22. mData[2] = _T("UserAge");
  23. mData[3] = _T("Sex");
  24. if (!pAdo->Open(_T("select * from userinfo")))
  25. {
  26.     AfxMessageBox(_T("Table open error!"));
  27.     eturn ;
  28. }
  29. //取得数据的总数目
  30. int nCount = pAdo->GetRecordCount();
  31. if(nCount>=1)
  32. {   
  33.     //将记录集指针移动到首个记录
  34.     pAdo->MoveFirst();  
  35.     CString sUserName,sSex;
  36.     LONG  nId = -1;
  37.     LONG  nAge = -1;
  38.     for (int i = 0 ; i < nRecords ; i ++)
  39.     {
  40.                   //通过GetFieldValue函数就能取得对应的数据
  41.         pAdo->GetFieldValue(mData[0],nId);
  42.         pAdo->GetFieldValue(mData[1],sUserName);
  43.         pAdo->GetFieldValue(mData[2],nAge);
  44.         pAdo->GetFieldValue(mData[3],sSex);
  45.         //对取得的数据操作
  46.                   //显示在ListCtrl里,或者其它... 
  47.         //每访问一次,指针指向下一个记录,这样就能访问所有记录
  48.         pAdo->MoveNext();
  49.     }
  50. }

上面代码只是使用了一个简单的表查询语句,如果想实现其它查询只需使用ADO提供的Open函数操作即可,例如如果想查询表userinfo里的所有"sex = man"的记录,则可以这样写:

pAdo->Open(_T("select * from userinfo where sex = 'man' "));

通过改变Open函数后面的参数就能实现对数据的基本的查询和操作。补充一个小的地方,当查询参数化时要注意查询语句后面条件是有" ' "小的单引号的。

例如:CString str = _T("Virqin");

pAdo->Open(_T("delete from userinfo where username = ' ") + str + _T(" ' "));

上面就是ADO访问数据库了,ODBC还没有实现,大体都差不多。现在觉得使用VC开发数据库相关的其实挺繁琐的,Delphi开发好像挺不错的,只是没有时间去看....大四了,感觉时间一天一天在减小,少有的压迫感。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值