VC++中使用MFC通过ADO连接数据库方法小结

来源:互联网 发布:数据恢复软件破解版 编辑:程序博客网 时间:2024/05/18 01:50
VC++中使用MFC通过ADO连接数据库方法小结(不包括异常的捕捉)
这里主要讲MFC与ACCESS数据库(SQL2000方法差不多,主要是连接字符串不同)

1、在StdAfx.h头文件中加入此句子
#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF")//不要命名空间,重命//名EOF为rsEOF
这句话意味使用msado15.dll动态连接库文件,里面就有ADO

2、实现从数据库中提取显示数据
CoInitialize(NULL);//初始化COM组件
_ConnectionPtr pConn(__uuidof(Connection));//实例化一个connection对象pConn
_RecordsetPtr pRst(__uuidof(Recordset));//实例化一个Recordset对象pRst
_CommandPtr pCmd(__uuidof(Command));//实例化一个Command对象pCmd


pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://student.mdb;Persist Security Info=False";
//通过pConn对象连接字符串,连接到ACCESS数据库,这里ACCESS数据库在C根目录下

pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
 pCmd->CommandText="SELECT * FROM stu";//通过pCmd对象访问数据库
 pRst=pCmd->Execute(NULL,NULL,adCmdText);
 while(!pRst->rsEOF)
 {
  ((CListBox*)GetDlgItem(IDC_LIST1))->AddString(//把数据库中学号这列的内容放入IDC_LIST1的LIST控件中
   (_bstr_t)pRst->GetCollect("学号"));
  pRst->MoveNext();//下移一个
 }
 
pRst->Close();//关闭对象
pConn->Close();
pCmd.Release();//释放对象
pRst.Release();
pConn.Release();
CoUninitialize();//卸载COM组件

3、实现插入记录
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));
_variant_t RecordsAffected;//申请一个_variant_t类型的的变量
 

pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://student.mdb;Persist Security Info=True";
pConn->Open("","","",adConnectUnspecified);

pRst=pConn->Execute("INSERT INTO stu (学号,姓名,电话) VALUES ('2222','dddd','123456')",&RecordsAffected,adCmdText);
 
 
   
pConn->Close();

//pRst->Close();//若有此句可以实现插入,但会产生runtime错误提示 

pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();


4、实现删除记录

CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));
_variant_t RecordsAffected;//申请一个_variant_t类型的的变量
 

pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://student.mdb;Persist Security Info=True";
pConn->Open("","","",adConnectUnspecified);

pRst=pConn->Execute("DELETE FROM stu WHERE 学号='2'",&RecordsAffected,adCmdText);
 
 
   
pConn->Close();

 

pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 娃脖子有点烂了怎么办 7月省内流量套餐怎么办 qq手游授权失败怎么办 钉钉不够6人创建怎么办 钉钉 不够6个人怎么办 plsql删错了表怎么办 吊兰长出来的茎怎么办 防水台鞋跟太高怎么办 证件照头部比例过大怎么办 特岗照片传错了怎么办 打印报名表照片不显示怎么办 刚买的床有味道怎么办 雨刷器角度太小怎么办 四个月宝宝闹觉怎么办 怀孕六个月睡不好觉怎么办? 婴儿睡不好觉总是吵闹怎么办 婴儿鼻塞睡不好觉怎么办 玩英雄联盟鼠标变亮白怎么办 练芭蕾脚受伤了怎么办 高三了英语30分怎么办 要上高中了英语不好怎么办 高二了数学不好怎么办 高二函数不好怎么办啊 输乳怎么办腺病有什么妇症状 屁股上坐的发黑怎么办 车屁股撞了个洞怎么办 腰压迫的腿疼怎么办 肩胛提肌固定不住怎么办 胳膊粗后背肉多怎么办 2岁儿童 肋骨边缘外翻怎么办 5岁宝宝盆骨前倾怎么办 脖子弯了像驼背怎么办 都40周了还没生怎么办 股骨头坏死骨盆歪了怎么办 二胎侧切伤口疼怎么办 小月子盆骨酸痛怎么办 盆骨一边大一边小怎么办 快生了宫颈管长怎么办 想顺产 宫颈管长怎么办 腰和跨一样宽怎么办 脚后跟骨折手术后小腿变细怎么办