c++之连接数据库教程_第1页
c++之连接数据库教程_第2页
c++之连接数据库教程_第3页
c++之连接数据库教程_第4页
c++之连接数据库教程_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本教程是实现C+MFC连接ACCESS数据库教程胡绍利前提介绍:我用的是 VS2012编写C+程序,ACCESS使用2003版本,测试数据库FACEDATA.MDF具体教程如下:1.首先,新建 MFC工程,取名字MyProgram廐 MmMUj 53jQj 型ftuj ffVMC WiM-凹一鼻 MU WtV4U.H 書” SKPM*2. 点击下一步,知道出现以下界面,加应用程序类型改为基于对话框制|* |JK WiKi。 Vm wo IjIo Ascai x&fnoaw 咽” E ii A - 卜相町n56-6msRm-Mb*-aue. 氐 imaMR应用程序类型:顷目类单个文档fl H1.

2、參个文蝕*选项看或文档ev|快用HTML対话框视财无惱强的NFC控件也)參牛顶级交档工IH V档坤0團结櫛审捨处MFC矗3. 再点击完成,即成功创建MFC工程4. 之后会生成如下页面,为显示框页面。你可以通过拖拽右边工具栏的控件来添加控件。如果要查看显示框界面的话,可以点击资源试图来查看,一般都是在左下角位置。|d|*1 : -Til Ui rljlA *! f-7W lii W tfliBBKM OID1*0 HfW K4KiC MIVNi 1 阻 IMims習LUAk zifl wvtu. 塚1-;9*医13匚夕上8社JActaiH CurMribartic* I SiwJi坤“ihira

3、fliHUc = L, LAiA|X.CwantE5*=*#I5;* JbHmwi曲 Ash ?J3 Car*ralCSaia rnw LoarPudiiriir IdMrt歩 *7中,g|E !闻|程5. 由于本教程是连接数据库,所以,就简单添加一个查找和插入的功能。加入控件 Button 和 Edit control6. 对于控件的操作,如创建连接数据库的 息,一般要改的信息有ID,caption其他属性需要的话,自己百度去。Butt on,可以点击右键,选中属性来修改控件信$4WfTfwKL00k MWAlnUCHtfO* tul吟UpgC&Mg,MxWl 5 Mm L*rve wA t

4、U Mw LHiScvoibH NHe MMrtM Bob M. k4rvvw *OvtaK W Woeg Mil g F “ JD) M SQUO 祝m IAD MZ “ imx3 S U Z 9 -MsCbedt 2SMicFeMC*eiKU UvdIBar13 ScnM aroywCooiUrtC*wFw (envtJ mArW lrw4KchttZS molIDD.MYPROGRAM.DIALOG (DialSystem ModalFalseVisibleTrue外现3D LookFalseAbsolute AlignFalseBorderResizingCaptionMy Prog

5、ramClient EdgeFalseClip ChildrenFalseClip SiblingsFalseHoriz on tai Sere FalseLayeredFalseLayout RTLFalseLeft ScrollbarFalseMaximize BoxFalseMinimize BoxFalseOverlapped WFalsePalette Window 卜IseStatic EdgeFalseStylePopupSystem MenuTrueTitle BarTrueTool WindowFalseTopmostFalseTransparentFalseCaption指

6、走了活框的曙的孑 本。7. 修改完成后,再通过双击界面上的连接数据库按钮,来创建相应的响应函数 Vfl404 鬲mh峠-WMQ祜二良IMKfl 翻 *1MKMS BUla3IU|w UMft ;lLIIQ- GH!JNMCTn40?7用 piU 11 肘笄I -Vhiam |l* 19 WMEffih-i .li-2*esWyfruW心塾导xrn ictaimr)it ilMwMvDrmirE |. JiALCAj Jiiiaq.IVilMIIk nmjh - bhkIHBii M*B QB * :f|piw ffl :KEf :旳静耳* hly丹*阿曲烟p & *frritw inai片剧日

7、nFEAI * *fTlU1141B H- wlR_W4 *iiiJ屮 iJD|lf*IL4pl|fX-STj rrad JriTuat I 曲 1 t !克吓:EC3K 工曲EIW Dlh*r8_3M9f TbdjCfcjhJCCAMFI IlN. *Lii4 h|J粘袖 d dX-U-j Trad JiiHJ.actIrKCl I 曲小斗iqfdia” *Sb_jiB.j! x i_- _xx sv j.t-qgsi_!DECLARE.IE3SAGE. 1UP ()public:迅xji总営 void OriBnClicte&iCoiirLat (): arfx msvoid OnBnCl

8、TLckedSearch (); afx_msg void OnBnCl二匚kedliuid;(); C Sir in;; jiiyE dit;上面就是几个 BUTTON的响应函数和 EDIT CONTROL的VALUE的值。o o o oooooooooooo o o o o o o o o o o o o o o具体函数稍后会有详细。oooooooooooooooooooooooo9.当控件都设置完成后,如图4adh fe/Iv*1Me 3jukhJ 2dl AirMdh Serai 1站少LstnsiW:hhrIm Cwir*v CBrarei FflbCvTirElMefewoH *i

9、wid klitfesL1P a-llCD& W,咿V 11Tl*b| M*lU曰MrumlJl=事imu ridiQi T*a#1 SFVO 珥工! K5l SM1%I 钏剖0 C*W4iCErnbc B ustBMvHhwRfbl P i|fi FJm 口计| T PL氏EWUffavirt*qms tuj 蚩 Hc 皿 Km fltM igtmP 4X,.:TJ4M410.接下来具体讲下如何实现数据库的连接首先,点击MyProgram.CPP找到BOOLCMyProgramAppI nit In sta nce()函数AfxOleInit ();来初始化COM库,因为数据库连接是通过 C

10、OI接口实现的lJliiA.pp : Init Instance 0 .AfxOlelmtC/初始化COM库AfxErLableCont r o lCont airue r ();创建shell管理器,出防对话框包含 tl II Bl| I Ml I I | Ini 、 I I同时在stdafx.h文件下,加如下代码#import C:Program FilesCommon FilesSystemADOmsado15.dllno_namespace rename(EOF,EndOfFile)#i nclude 具体含义,我也不是很清楚,忘了。不过,这个是必须的。另外,你看下import的路径下

11、是否有该文件,如果没有的话,工程里面有,你添加到相应路径即可11. 然后,就点到 MyprogramDLG .H文件我加的地方public;Connect 1 orLPt r n pComeclicnJ:先定义一个 _ConnectionPtr m_pConnection;12. 然后,找到连接数据 Button 的响应函数 void CMyProgramDIg:OnBnClickedConnet() 加入如下代码:/ 连接数据库 /HRESULT hr;tryhr = m_pConnection.Createlnstance(ADODB.Connection);/ 创建 Connection

12、 对象 if(SUCCEEDED(hr)hr = m_pCo nn ectio n-Ope n(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=FaceData.mdb,adModeUnknown);/ 连接数据库catch(_com_error e)/ 捕捉异常CStri ng errormessage;errormessage.Format(”连接数据库失败!rn 错误信息:%s,e.ErrorMessage();AfxMessageBox(errormessage);/ 显示错误信息return FALSE;cm IAS 细痂f雷 iLliwi M

13、imiJ St MjpPwnpnii 1 *产需*4显丹9 EClJWiJU-BDXQ EQeMPlJu -Ti-j-ide-E-Ui: wiofr Jk ulEEt 状豊他山、:、丄鼻站飞幻八巧.fcrrirr.rr 直的芒誉 tt * :JUtr_l. M.rit BMatftlrii * lMJUC*b7 ” Cut L心*1 Klc ,/IM- =lai- UtKofmcriomTiI?34WraAxtatfiMup:z t b-S* a m fAAnPrLdhrEflii 討卜-iiii atm 人 M 劇+詡出1:3丹.kCUU- 9,E1 I仲jituCwAt rTrimiBTM

14、ULEJT! *rwFlpa_iDa iiria sfNarBl mBrOKfcflCjPprfa FriHIflCo何 Mm ikfirrlFIrirtM lidM価MmItSkar*: FmIm |iT|h IhAmICILi MlHMun呵!Mh| ir HEF-xnmra|vWEI M.KU .4-fucMl l_1 j AtAs-kfrfkK liN iarfeMdbgt . n Ri# B i=_*v | & 生弐嵋书lid- 口妙怪nf lta 巧Mt Ilins rii =-卅fF OlyProgjrarMXg!膏 OhBfiClickedCoiwietO|/ EEi加徑耳僅蚓

15、“屋棍济忧回/ 连悔* 谊拠RJLT hr ;tryitar lijsCarnert in.CmLt eTwt uihC ABOE9. Come-Tt iw): / 6Jttba meetlcmJi 讎iff.亦云3 lic)l扌M - pCTLzitctidft-jOpafiCFtQidriMetiSflfi. jet-iiLKiB. -4. CjDt 3 j&urcei Pa亡小!afiJtfJ笃八d!怙血:亦own) :/童Uh Jh粘竺;mLT附的iSWFHli痒O./Mbaf i.f stiC-jtmcti on =tr?rwiir= S$L !T jF:C*at右raelocal

16、.laiti 11C rtalog =Fa-;eDfitm. idf /ir = i_pC3Tffl.=-rtznft-bf Eki(5trCameEl,in 18il534.Efi , lidEadfilnkTijannii) i力止矍一勺屮连壘孚阳自的九gm*星料胡AjXI岛珂胃廉的-W于jcm盟/ 3?零涉老h Pi officte r=flioi 阔 eft航 OLSDS, 3.5L;卜-/_bsli_ t CscnSt z = ,!Fra-xdjEZ=3C|LCLEII3. 5 siv-i= (lncall : Dz atajDFM:;IJ1atB. iu:LdmjiK123456

17、./tvpCcainec1.1 tnti*X3jr (CciStitF* WJH7.IJcat 乩(_ mwt: eoe /DR 坨耳議ICStfirj tKiQnrurrijt.Btr:ui.-&E3 iga-Farriaf C_T厂诗雄前操库主件 1、讥yi冒县佰翱j X打日.Errcrresf aa Fl IAfiSfS2ig-=Enr (errnmessayrE) /?; 星9t*dzik i1* 0p en Cy P r ovi Nessag&Bcx (_丁咸功连播数協库T /_bstr_t strCormection = _T (ffP:CSt ring errormessaee;

18、errcmessage.Fornst (_T(”達握败据库尖瞰 Itnis 谟佶島:K3W) j e.ErrarMessae 0): AsWessagieBoK (errormess age) ;启7F:崔俣信息r etum ;这两处要加 CString (CString类似与string类型,不过有一定区别,是MFC里的)类型的地方,前面都要加_T( “”;进行类型转换,这个对有些编译器,如果没有系统会报错。成功连接数据库之后,如图所示:nJIWin H*M H 和円 AS Fl HEii ”曲 I KMI SHOWliC firWNJ BJrwi 叭”a 誉P孑中-:糧.匕Hb CL493

19、 一 E h - *?别卢r:p4帀川It* W严叶dE宙9HBriC3KMKariat aLCc1 j-*nrIS*tcQaMTAfl中|44出亠* piM*Mtai 一 ax= _&4 k . _ Ui4-y.Vi laFnrdxtA.HE聖昨曰 W*哑t 匚岸首F CM Hf : A ri MA Utasi4mfaM-rIfhSfvMf fcVAUJMivlfrtwvtlari!IM%*絶msglflF王吐巨e fuif fTflMWQL翼贴.9*#朗1 KU 1ant wu 4H * lijo-iiMiijir当你成功做到这一步时,表示你已经成功登录数据库,接下来就是对数据库进行查找和

20、 插入操作。13. 首先,点击 MYPROGRAM.H 加入下列代码: _RecordsetPtr m_pRecordset; 数据集连接_varia nt_t vUsername,vlD,vFeature;/ 存放取出来的数据的变量14. 查找操作,点击资源试图中点击查找按钮,找对应的响应函数E void 工 up: 11: :0nBnCliclOpe n(_varia nt_t(strSQL),m_pC onn ectio n. Getl nterfacePtr(), adOpe nDyn amic, adLockOptimistic,adCmdU nknown);int i = 0;wh

21、ile(m_pRecordset-E ndOfFile = VARIANT_FALSE & i GetCollect(feature);vFeature = m_pRecordset-GetCollect(feature); CFeature = vFeature;MessageBox(CFeature);m_pRecordset-MoveNext();i+;选择读取前1个测试用所以读的少点catch(_com_error e)CStri ng message;message.Format(_T(读取数据库失败!n 错误信息 为:s),e.Descriptio n();AfxMessageBo

22、x( message );显示错误信息具体显示页面:备注:成功后,显示图片如下(这个是我数据库里的数据):strSQL.Format( _T(SELECT * FROM FaceTableJ);用来定义连接数据库的哪个表和显示的数据属性 m_pRecordset.Createl nsta nee仓 U建数据集m_pRecordset-Ope n 打开数据集_varia nt_t (strSQL)具体数据库语言,要传入数据库其他几个参数是读取数据库的方式,比如只读或者可读可写,具体我也记不是很清楚,你自己百度下吧conn ection 指针 相当于数据库登录的帐号m_pC onn ectio n

23、.Getl ntefacePtr()|_1-_2侶1归沁23宓BL2CaRT D.L 30002 -乩円応-34C7D1.岂孔 H 為!4辭血:*4申*099773!48:2刃酎;3;7100片!4W3mu794BZ;SRSm;lj41M2Q37f0聘也抖期:说PW站.tM机量常谄別砂码沖店呼科打”他:.抽皿:屯11股;虐站右科;”站誹超皿氈皤山射】;.$ 审丁口斗整祈】0 :旳讼市垢;了M却1:专2齐1:取瞒应期吓4 忑啦比閒曾15Mfi?rSfU1J l77Ji-25*165cZ-WSE1ll7l93TiJU27&.-E3C9-fl.?TEJDNLlJllKlLfLH32iAlUU:5jn

24、B.m9tE.k9J9B33J-LEl2D7MM42 ZiJTaaCMaUiasLBtink-LMari.-lLMalDJ LM:科址拓轻1旳】电橄期谊枷M纽盯沁斤汕Q和耳卜此丼H+itiTttltMJ儿RH盘打軸皿轻些览.L出理.JW*”出皿 I-1:-则:口心他祕T.砧曲捕H 421!10mi;-jja01|4SM?i;-LW?4i&卉屮卫! 4slCLll?3!iWa -3L?43M -ZfiiaH -ajlfisx -C-BMigft -BJIGT. -C.gPMMt -3-ZM.?Z_4DJi:35T iTJMMTlSZiLflaBl -1W2 ZJJB? LTM2.1U?M.LM4

25、1 J.nttl;帖丁侏轻申比,掘丄紆7541714,的 L;mO筑直呷羽也片订科:”茄珀:-45ftk-ll L7fe-1EL4185E-2.7H7-12 50殛ilM別护94757H9:|M9m卫如題-旧丘酹冋畑l:LW邸Ishi 轧LM9fT7IJ 1 制城U皈阳9测处力倉 2眩;分费尸30並rdCHmrUl Ma:iU丄厂:曲丄-11_M?H.-3;I 74Q.iTjn2.MCM4?134-2.1491, UMfl;-1ZJ944 -1JW7;羽轴:盛绘7須* IiiM和厶训芳九1比0錘泊7L.J MG;藍时。吩已L7,;阳卄罷14*盏盹灯*二的冲E址吩皿幹耳总舲莎章申U址产址??*】

26、LUT253r-2 fr9Ci72-i21341-5 轉书:弋肝壮i翱刃加 1*861h5 mil -6 ID1MD A9712.8i?fi 3281:MX-0 1f57 ia潢刿B迪久號B4 ia.MJi L.MLJ 4.D2Bi1i時.巧一诅盟再尸“沾.曲亡.或4i Li;站3;屯堪丹B血址叫 5*用乂 岀1彷上亠並丿力蝴d咋7殆刃$典心删刀皿軸;U环览血iR-E科皆盒m 贏軸剔;4灯怦 剳网 LU1 SfrJtnSr5L 3$&7141.170 97?:,i1L2234- lL&JStr-1&?21fr- iQ255- 7 diKi7d-T.7IJ :断IT li65?!il 3D-af

27、lW5J: 别站打T M屉:抄诃2:2L工喇;辺 DS6Lr-lC,l16 n时JP輕 丄曲44巧.5乂 心丄出吃 丄,阳11“141怡址-Id.ULJ用曲ISALWI!. -4JLW.L.Laaj; ijMBas;眩豹u:.f申卷:|_57科iSrTrajMiM口mh;qi戲精潞p為3-题总字i二凶二打巳二盹爲;l巧呻1“141:2沁1卜工:m湘rrvE;仏*輕1 1 4.:-t7(r:5:-Ja2JS:LL:2 72ilWJCix l5M*ft i5iS6!.ML-L.:-7.65Hj*l:i12t59ilJ- 166?eail7a?!K121 L4:a.222-Lifi2-65657S-

28、i-. J73 瑞 JJ 書*血吗活 J09t 址乜聲丁為上乜祁 B4 眄】.棹記亠 17JU2.ZJ332 iaJFM9ZMlAL;lA99TB.BJLH3 410m; 1WL1;囁时期;-皿结 Lfi JM4 * kJ rnzaTiaM二*HH玉血淫 R7977E 需牛27融$:-上.沖5:KMf76l4Zja屮l:7905Mf 03:”-m占別呢呂申-DlEUJWj申工97电畤;.lJM37:m. 垃 14:gFW 扣30血妙14再142口HL14M 口38靖汛”1X42瑚电出Stl工液坯5936:-M9MEBaiA它的 W忑49&5ttl2的5抵1僅殴対915肝J切乩47.?71;Dl

29、U,MlJ1-lLMIJl;lBT3.nO3T 口卫MMAUL;期丼如也刼”乂1亿:MX】;哼圖m.LW.:LLKUl IMitJ LOflh l Ji杠促離 WO浊埶翊址就血保迪卜U 7B54117W$XM714ufitiBr-4.71J Ll:7 MW-S 阳刚MG胃处i蒯4 UBT4 *9W7,B.MLTlft.raL? UVW 3.QUB41J.71 JI J0)g4.I1S1J 1.打朮他2”*|.虫IHH址5 64-2-lLW2 :-JQ4- U7-=fiaj:CE 54 L. 527_5CC7C5- 17.113 Z7:-LZ Sf4;B.lB53:汨三示72壬|2若;T论门 E

30、MP:I玄薛峨蚓蛍01LM:MJ1.岬 1J 促耐曲1tealLj3ll?fiLaMX?:LJlJJ*A.7S4aS4:*m.mE77EJB単 me 碎 I IM) rn-4mc mihhj 1幽 a*i妙HE 口袒$*EiCF+ri.w*.tc %O tirv hE-SU./rej&Fw JILMT IHiJt huiittUi 4fe*rii*bdfltr3QL-?irwi LlCSEHT a F*. F*r*Tf】# 汕C mhl-LW”二?hFMb| I *wwi |/VRfltiq f*fFUI p)E*Ei:EK-B i_piKnrni-srriCajjart I :-nl tri

31、 I b*W* 1w*Mr: :l;i.: jj| . pHlIWdlirWRiflHH 11 i+*it iiri 砰哥旦车韓.pEl KQ JIUHOX Bi ni- 11 |rgk 中 n_pj IJhjfljJwi THi.i p IflLii HrC|h1-hdf-fert4lrftllaurt i I.Vt!i Li * hKIMl J&iL M i L MkE “W Fl 01上F LM tc ETwrCnqCZ3 LUFa, lAhUbj*MlV 仙1ME uM E 前覚 li軋 hrtfl沪 bw DIJLlfax3i4adca I suehii I . /fl TH H-f

32、l VEhiBniSKkHP* FltdSnetffi tM尸IsCcfk 理I” 1ifr*rlF fttalH I斗P li#f I4tk Mm I帯材4 r RdMJiShn: FdriH 1|TviH!I illt IftUBl EV I* Mn-i Mm “rMri nil15. 到此,就实现了数据库简单查询的功能。16. 接下来是数据库插入功能,点击MyPROGRAM.H文件声明一个void SaveData();函数,具体实现具体数值的插入数据库/7叢如的地方 p-ublic: _CQiuictiorLptr jn.pCQnnertiQn; -RecordrePtr n_pRec

33、Qrdset 拒集连撞 _variarit_t vUsezname. vFeatnre::存锁取出来的频据的变童id_ SaveDat a():17.在找到插入数据库的响应函数,加入如下代码:;void 匚M?! rii&lE :: OnBnClickedlnsertI 几TOEXJ;在此运加控件通知处I鞘序代码trya_p?lKcrds*t-Optn .SzlzCI - Ff.M FACsTable.GtlRter:acFa_p?.xordsst-,百闍罢插入敎握Sav&Jata :trym_pRecordset.CreateInstance( _uuidof (Recordset );m_

34、pRecordset-Ope n(SELECT * FROM FaceTable, m_pCo nn ectio n.Getl nterfacePtr(),adOpenDynamic adLockOptimistic , adCmdUnknown m_pRecordset-AddNew(); / 声明要插入数据 SaveData();catch (_com_error e)AfxMessageBox(e.Descriptio n();AfxMessageBox(e.ErrorMessage(); return ;m_pRecordset-AddNew();SAVEDATA里面实现数据的插入备注

35、:前面两句跟查询一样,都是要先创建数据集连接, 用来告诉数据库我要开始插入数据,具体在18. SAVEDATA函数的实现1 void JAT?roIgi :5D且t且(jif :ni_pFwcord8tt_EndD5r lJt1a_pRcordset-?PutCol 1 ect ruseiii, _T . 0*.:.Record5e t ?PutCol 1 t . umezrnu亡厂,胡貂利a_pEci?rdsPjtColIwtwturft*._T (231221l,):q_pRGQrdst-Updati 0 .:、更新声明,插入数拥 c_t dSA咸功); if(!m_pRecordset-E ndOfFile)m pRecordset-PutCollect(user

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论