易码技术论坛

 找回密码
 加入易码
搜索
查看: 163870|回复: 0

我试试贴代码……

[复制链接]
发表于 2007-9-11 16:36:20 | 显示全部楼层 |阅读模式
  1. //先定义3个变量,这3个变量其实是3个重要的对象:
  2.   _ConnectionPtr  m_pConnection;//连接变量指针
  3.   _CommandPtr    m_pCommand;//命令变量指针
  4.   _RecordsetPtr  m_pRecordset;//记录集变量指针
  5.   //定义后,需要进行创建
  6.   m_pConnection.CreateInstance(__uuidof(Connection));//使用ADO创建数据库连接
  7.   m_pCommand.CreateInstance(__uuidof(Command));//使用ADO创建数据库命令变量
  8.   m_pRecordset.CreateInstance(__uuidof(Recordset));//使用ADO创建数据库记录集
  9.   
  10.   //创建后我们需要连接数据库
  11.   m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=testDB.mdb","","",adModeUnknown);
  12.   try
  13.   {
  14.     //连接后,我们可以直接用记录集对象(或者你可以喊变量)读取我们需要的数据
  15.     CString selectStr;//用来查询的变量
  16.     selectStr.Format("SELECT * FROM testTable");//这里其实是写的SQL语句除了select还可以是其他的入delete/insert/update
  17.     m_pRecordset->Open( _variant_t(selectStr),//"SELECT * FROM UserTable WHERE Name = 'admin'", // 查询User表中所有字段
  18.               m_pConnection.GetInterfacePtr(),// 获取库接库的IDispatch指针
  19.               adOpenDynamic,
  20.               adLockOptimistic,
  21.               adCmdText);
  22.     //运行了上面那句后,testTable里的所有记录都已经读取到m_pRecordset对象里了。
  23.     //下面对记录集m_pRecordset进行操作,将记录输入到listbox控件里
  24.     //定义用来临时存数据的变量
  25.     _variant_t var;
  26.     CString strNO,strName,strAge;
  27.     if(!m_pRecordset->BOF)//判断数据集是否为空
  28.       m_pRecordset->MoveFirst();//不为空则将数据集的指针移动到第一条记录
  29.     else
  30.     {
  31.       AfxMessageBox("没有找到任何记录");//为空则提示数据库没有任何记录并且返回
  32.       return;
  33.     }
  34.     while(!m_pRecordset->adoEOF)//循环语句,当记录集的指针没有移动到最后一条之后时进行循环
  35.     {
  36.       var = m_pRecordset->GetCollect("NO");//读取数据集里的no字段的值
  37.       if(var.vt != VT_NULL)  //字段NO不为空则 将var的值赋值给strNO
  38.         strNO = (LPCSTR)_bstr_t(var);
  39.       var = m_pRecordset->GetCollect("Name");
  40.       if(var.vt != VT_NULL)
  41.         strName = (LPCSTR)_bstr_t(var);
  42.       var = m_pRecordset->GetCollect("Age");
  43.       if(var.vt != VT_NULL)
  44.         strAge = (LPCSTR)_bstr_t(var);
  45.       //想列表框添加记录:
  46.       m_list.AddString( "编号:" + strNO + " 姓名:"+ strName + " 年龄"+ strAge+"岁");
  47.       
  48.       m_pRecordset->MoveNext();//将指针移动到下一条记录
  49.     }
  50.     //关闭记录
  51.     m_pRecordset->Close();
  52.   }
  53.   catch(_com_error *e)
  54.   {
  55.     AfxMessageBox(e->ErrorMessage());
  56.   }
复制代码
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-5-1 18:57 , Processed in 0.013312 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表