QQ登录

只需一步,快速开始

291上位机VC MFC使用ADO遍历记录集

[ 复制链接 ]

291上位机VC MFC使用ADO遍历记录集

291上位机VC MFC使用ADO遍历记录集

ADO遍历记录集
功能展示
ADO编写数据库程序,最终的目的就是访问记录集中的数据,我们当前例程实现遍历数据库中指定记录集的全部内容,并显示在列表控件中,效果如图,在组合框中选择记录集后,点击<遍历>就可实现选中表的全部内容的读取与显示;

要点提示
VC中提供两种方法获取记录集的值,一是直接通过GetCollect(),或通过Recordset的Fields的GetItem(字段名)方法获取获取当前记录的variant类型的值,然后将其转换为我们想要的值;
二是通过映射将查询所返回的值同变量进行捆绑,以方便值的类型的转换 ;
遍历记录集用到的常用函数 有:
MoveFirst();
MoveLast();
MovePrevous();
MoveNext();
Move();

实现功能
1.新建基于对话框的应用程序
2.在App类的InitInstance()函数中添加代码AfxOleInit();//初始化COM,创建ADO连接等操作
3.在stdafx.h中加入ADO支持库
#import “c:\program files\common files\system\ado\msado15.dll” no_namespace rename (“EOF”, “adoEOF”) 及#include "icrsint.h"//IADORecordBinding 头文件
4.主对话框中添加变量_ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset;并初始化
CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO);
pComboBox->InsertString(0,"Basic");
pComboBox->InsertString(0,"Course");
pComboBox->InsertString(0,"newtable");
pComboBox->SetCurSel(0);
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=STUDENTSINFO.MDB",
"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
}
m_pRecordset.CreateInstance(__uuidof(Recordset));
5.在主对话框添加组合框IDC_COMBO ,列表控件IDC_LIST ,再添加一<遍历>按钮,响应按钮的点击函数
void CGkbc8Dlg::OnDisplay()
{
CComboBox* pComboBox =(CComboBox*)GetDlgItem(IDC_COMBO);
CString sText;
pComboBox->GetLBText(pComboBox->GetCurSel(),sText);
if(sText=="Basic")
ViewBasic();
if(sText=="Course")
ViewCourse();
if(sText=="newtable")
ViewNewTable();
}
6.可以看到上面的函数调用了三个函数,这是我们自定义的函数
void CGkbc8Dlg::ViewBasic()
{
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
pListCtrl->DeleteAllItems();
for(int i=3;i>=0;i--)
pListCtrl->DeleteColumn(i);

pListCtrl->InsertColumn(0,"StuID",LVCFMT_CENTER,50);
pListCtrl->InsertColumn(1,"StuName",LVCFMT_CENTER,80);
pListCtrl->InsertColumn(2,"StuAdd",LVCFMT_CENTER,60);
pListCtrl->InsertColumn(3,"StuTel",LVCFMT_CENTER,50);

try
{
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("SELECT * FROM Basic",&RecordsAffected,adCmdText);
if(m_pRecordset->BOF)//else
{
AfxMessageBox("表内数据为空");
return;
}
m_pRecordset->MoveFirst();

CString str1;
int nItem;
while(!m_pRecordset->adoEOF)
{
_variant_t vCount = m_pRecordset->GetCollect("StuID");
str1.Format("%d",vCount.lVal);
nItem=pListCtrl->InsertItem(0,str1);

vCount = m_pRecordset->GetCollect("StuName");
str1.Format("%d",vCount.lVal);
pListCtrl->SetItemText(nItem,1,str1);

vCount = m_pRecordset->GetCollect("StuAdd");
str1.Format("%d",vCount.lVal);
pListCtrl->SetItemText(nItem,2,str1);

vCount = m_pRecordset->GetCollect("StuTel");
str1.Format("%d",vCount.lVal);
pListCtrl->SetItemText(nItem,3,str1);
m_pRecordset->MoveNext();
}
m_pRecordset->MoveFirst();
}
catch(_com_error*e)
{
AfxMessageBox(e->ErrorMessage());
}
}
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:291.上位机VC MFC使用ADO遍历记录集.zip 
文件大小:191.31 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索