MFC中使用ado技术操作数据库

本文详细介绍如何使用ADO(ActiveX Data Objects)进行数据库操作,包括连接数据库、查询记录、修改记录、增加记录及删除记录等步骤,并提供了完整的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在stdafx.h中导入ado动态链接库
#import"C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","end")
2.在CTestApp文件的InitInstance()函数中domodal之前写::CoInitialize(NULL);程序结束时CoUninitialize();
3.CTestDlg.h中添加:
_ConnectionPtr connection;
_RecordsetPtr record;

初始化工作在cpp文件的BOOL CTestDlg::OnInitDialog()函数中完成:
try{ } catch(_com_error e){ e.Description() }
connection.CreateInstance("ADODB.Connection");
bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\\StudyPoems.accdb;Persist Security Info=False";
connection->Open(strConnect,"","",adModeUnknown);

执行OnCancle()时释放连接:connection->Close();
4.查询记录
CString sql = "select * from studentstable";
record.CreateInstance(__uuidof(Recordset));
record->Open(_bstr_t(sql),connection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
CString num,pass,progress;
while(!record->end)
{
num = (char *)(_bstr_t)record->GetCollect("num");
pass = (char *)(_bstr_t)record->GetCollect("password");
progress = (char *)(_bstr_t)record->GetCollect("progress");

m_list.InsertItem(0,num,0);
m_list.SetItemText(0,1,pass);
m_list.SetItemText(0,2,progress);
record->MoveNext();
}
//关闭记录集
record->Close();

5.修改记录
CString sql = "update studentstable set [password] = '201234' where num = '100003'";
connection->Execute((_bstr_t)sql,NULL,adCmdText);
6.增加记录
CString cmdstr = "select * from studentstable";
//利用ado对象添加记录
record.CreateInstance(_uuidof(Recordset));
record->Open(_bstr_t(cmdstr),connection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
record->AddNew();
CString num = "100003";
CString pass = "300001";
CString progress = "1";
record->PutCollect("num",(_bstr_t)num);
record->PutCollect("password",(_bstr_t)pass);
record->PutCollect("progress",(_bstr_t)progress);

record->Update();
record->Close();

7.删除记录
CString sql = "delete from studentstable where num = '100003'";
connection->Execute((bstr_t)sql,NULL,adCmdText);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值