《VC++模糊查询实例》由会员分享,可在线阅读,更多相关《VC++模糊查询实例(21页珍藏版)》请在人人文库网上搜索。
1、VC+6.0基于窗口的 MFC工程模糊查询例子首先建立一个基于窗口的 MFC AppWizard (exe)的工程。步骤如下:1.1在菜单栏中点击file-new弹出窗口,选择 Projects选项卡-选择MFC AppWizard(exe),之后再Project name输入自己的工程名称,在 Location中选择工程的存放位置File Prop actsWorkcpacec |HBaaaEa i鼻New Database V/izrd tl Utfmy PrajectWin32 ApplicotionWinJ? Console Application Wlnl? Dyiimiiiol i。
2、nk L Ihwiy左 Create new wvrkpacc 广 Atlil hr Ciirrtriilr厂 Dependency cl:JATL COM AppWizardClustBr ResourcB lype Wizard TlCiisliini AppMflirtnl 卸 DoIbIbc Projccl DevStudio Add-irt Wizard 誉 Fwtenrlerl Sfnred Prflc W*7st(l ifllSAPI CMensiun Wizard fMaksHsMFC jctlveX ControrWIztrd HMFC ApWIzvd |dB)Picjed 。
3、name:|lcst1 o4liun:Etntfnrms;*Win 理Cancel1.2 .点击OK按钮,出现如下窗口1.3 选择 Dialog based,如下14 之后点击Finish,。1.5点击OK,即可完成基于窗口的 MFC工程的创建、创建数据库、连接数据库的方法我使用的是 ADO连接,具体步骤如下:注:数据库自行建立,只要有一个表即可,本例中数据库名为LLJYdatabase sa密码为空2.1首先在文件视图(FileView)中,选择Header Files -StdAfx.h,双击StdAfx.h,在右侧的代码中 添加#import C:program filesWcommon。
4、 filessystemadomsado15.dll rename_namespace(ADOBS) ren ame(EOF,adoEOF)using n amespace ADOBS;添加如下图所示fit A【書W.d |(7r已和* |Jdl dlaiit nn-Hitiers|j 匸TEtAfqp2)% -艮禺性i J !九更丽FiriP nrx SJTDUFX H ECH4ffllDP Ffl19 號0D5-1IWDUDf 0髯 WiOri加pPCX飞吃曽亡I戸对亡凸| 運)heat Alles* j Dies3 J Flu伽 Fllvt 呵 Fte-iEiiMjrcir 习 SMfl。
5、fehl 刁 lesl.h3 llD4ghi 口i 险*迎“ nict 刮 FadME.txt Eidrmul D亡p亡口门匕口峥匕卩fir _WSC_LB TOM/ JtM;_OLR lUMiiUuipff Ut CXTDfil FAMintiudttinrliitlp IrKlude Lmcludv / t irnlurilp- rrcle I ijIFF -IrirniHhv-jiiiwrE/ Hl U care 4Hficnn甲电nt呂/f MFC Autndtliin ilasses/ *RTC iiLippvrt For Intifrnift Cx|jlurier hi C-mnu。
6、m giiLrul勺7/ iHf C siappiart: f hi* Uindnus Cd rar-inn Contrail 3-/ _M-K_HU_ftl- XC_i P WtlI-Vinvrt _,E ;proqirani -FilPsWcwwiflni f1mWaaoWnsidii 15.11 lw rmAnp aBP A/ Kkcrinsaft Uisual * will Insrrt Jdlditiainal declarjitlefe imhetliiaiteLjf be*Fre tht prewiDUE line./ fUrfiniPdfftfXHF府巾9 WlRi AIA I。
7、Hl:lUiElfCi |呼拐氏倨。型FllcVi2.2在类视图(ClassView)中,展开CTestApp-双击CTestApp构造方法,在右侧声明全局的数 据库访问变量,BOOL Flag = FALSE; / 登录标识_ConnectionPtr m_pCon; /ADO 连接对象_RecordsetPtr m_pRs;_RecordsetPtr m_pRs1;_Comma ndPtr m_pCom;CStri ng user,password;/记录当前用户CStri ng strserver;CStri ng strdbName;CStri ng strUser;CStri ng 。
8、strPassword2.3 在 CTestApp 类添加 IniAdo()方法2.3.1类视图(ClassView) CTestApp类中添加IniAdo()方法,如下dVVk LZ ! *”! ftB fl.4 14ii t hfl Ln-u24j|6i t QmM瓠lj*网 I dsiJtE din jib e ri j | *llflilllii?;iriia-倉澎* 0- lesl clos-an* CAJhGulLUgB險卫J 1 CTecrest Apn:Clestftppf J/ TDDO: jdid coKtriyctian code h&reBIleant initialI。
9、n Imlt iLn&Uftte* 百DD飢 Cfti&tAw; Unllliti.ldriLeO令 1*crestflpip oejlct/ / r/ / /y/ / 7/ / / / / / / / CTe-ntSpp 1 ni liAliriitifinzJT、Ihii对dbua k Find ir 和】*f 1 hhi FiLti 2 舌 Bwidlr * 筑匚/II * I M6 t nwmtifif lihnisfeln to rii elcied2.3.2点击出现对话框,Add gPeE Fwbc t iFunclion Type: voidFunction Declarat!o。
10、n;IniAdoDlAccess护 Public 广 Protected PrivateU2SlStatic Virtual233点击确定,在InitAdo ()方法中添加下列代码:tryCStri ng temp;char filepathMAX_PATH;GetModuleFileName(NULL,filepath,MAX_PATH);temp = theApp.ExtractFilePath(filepath);/获取可执行文件的路径m_pCo n.Createl nsta nce(ADODB.Co nn ectio n);CStri ng strAdoCo nn;char temp1。
11、100;GetPrivateProfileStri ng(DatabaseCo nfig,Server,temp1,100,temp+logi n.ini); strserver = (TCHAR *)temp1;GetPrivateProfileStri ng(DatabaseC on fig,Database,temp1,100,temp+logi n.ini); strdbName = temp1;GetPrivateProfileStri ng(DatabaseCo nfig,User,temp1,100,temp+logi n.in i); strUser = temp1;GetPr。
12、ivateProfileStri ng(DatabaseC on fig,PWD,temp1,100,temp+logi n.in i); strPassword = temp1;strAdoCo nn .Format(driver=SQL Server;SERVER=%s;UID=%s;PWD=%s;DATABASE=%s, strserver, strUser, strPassword, strdbName);m_pC on .CreateI nsta nce(_uuidof(C onn ectio n);m_pC on-Conn ecti on Stri ng = (_bstr_t)st。
13、rAdoC onn;m_pCo n- Ope n(,NULL);m_pCom.Createl nsta nce(ADODB.Comma nd);m_pRs.Createl nsta nce(_uuidof(Recordset);m_pRs1.Create In sta nce(_uuidof(Recordset);/ ADOFLAG = TRUE;catch(_com_error) _/ADOFLAG = FALSE;Flag = FALSE;MessageBox(0,请检查系统配置信息,数据库连接失败,MB_OK);efum八caoh(:.)宀AfxMessageBOX(=SYS EIT03。
14、八efum八用9一!5:丫31別哑-冨 5ECnm q w-F: - :;- rp 當二 8 电*乙Lli:r= plrlr t.E-np-h和Get p% itltFPFQiIHllrs弓*&丹富1&|50=!: := %T-mJ二一 乞0 :pd= li3*r Itcz蛊 M10nilnlrMl-ILllnclf4ll“flgc* fmiFLAiG ,一 畧 z运 X FiL * 畀IIin Tie; ” 理 21 竄”E nguKI二-# 二 * -2.4#CTesfApp 淋空wExfacfzl_epafh(LPTSTR=h_ename)H241 淋書函(c-ass11J日 Id 11。
15、Vi山 C*-叫1斗團MJi 詣尸彗to 口*冒.luy uhl 1 rh u#r drag tJIhe nijiiriited windou +IIC1JISDR CTr&tDlgi! AnQlmDrIconC)WU CTtlwig: SMOKO/CO ialogz; IhilOKt);IhJ IMilvLn 1 /B, Col 1LUcol3.5按CTRL+Tab组合键,返回设计界面*13到i wg T-obleH LJ VerliNi勻脅樹口a曲5l-d叼債HaEffi 牛野口可國到*fn?r-a前1!Reallyjruj3.6删除确定及取消按钮,重新设计,添加一个静态文本框、一个编辑框。
16、、一个按钮、一个listc on trol显示控件,如下1S4sLfiVa*nF氐C PAB1541$lJ4卜山存=1匕1存$畫产11巴二匣&1.1. rGs-Yc-L rrAJIJisrw-tau 0c-3igSSISQSgeA uolCCErlDissl” D -35+ 匚田晋 IflTdhwF+匚吞 rE-DmLteCIMF-尷 于3 : LXFivi._?#3.7丰冰m*#或口sK)nl冈aMsaLuall!E-AHIP/liTi! ufig;e= -= ;一邑一UI&MZ SFS EEJI匕4P1嚴S1LLS2L色區 kIMFB!3 X21-READIs- K_ID口 SIuaFAL。
17、lwoxi0_gl!ESTIBIg 佝 iD_3亠 Lrwrobs-1 L -lWQIIIDel 匚叭lir.-J【丄 一丄 m 羽;汗.1亠;Ml了円|51|一IB!laE2:-09-= SB Ege43i3vnaksss5sfc3.8 也出 c_assw_za 且ffi圧33tGQJi*3sfD 陌 1 HIX BFflOK-Ri3.9 Member Variables选项卡下,选中相应控件,点击 Add Variables按钮关联变量,关联后的如下3.10点击OK,即完成控件与变量的关联。3.11设置ListControl控件的显示风格,3.11.1在CTeatDialog类中的Onln。
18、itDialog方法中添加以下代码:CDialog:O nlni tDialog();m_l ist1.ModifyStyle(0 ,L VS_SHOWSELALWAYS);mist1.SetExte ndedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_F LATSB);m_list1.InsertColumn(0,产品名称丄VCFMT_LEFT,100);m_list1.InsertColumn(1,生产日期丄VCFMT_LEFT,100);如下图所示3.11.2运行效果如下:3.12按钮查询事件3.12.1双击模糊查询按钮,弹出3.。
19、12.2 点击 OK3.12.3在OnMoHuquery ()事件中添加如下代码CStri ng c_value;m_value.GetWi ndowText(c_value);if(c_value=)MessageBox(请输入查询的产品名称.,提示,MB_OK|MBCONINFORMATION);return;elseCStri ng sql;mist.DeleteAllltems();sql.Format(select product name,stockdate from tb_product where product name like %s% ,c_value);m_pRs = 。
20、m_pCo n-Execute(_bstr_t)sql,NULL,adCmdText);int row = 0;while (! m_pRs-adoEOF) _CStri ng temp;m_list.l nsertltem(1OOOO,);for (int i = 0;iGetFields()-Count;i+) _temp = (TCHAR *)(_bstr_t)m_pRs-GetFields()-Getltem(lo ng)i)-Value; mist.SetltemText(row,i,temp); _m_pRs-MoveNext();row +=1;加入代码如下3.12.4在testDlg.cpp文件中声明部分添加如下代码extern _ConnectionPtr m_pCon; /ADO 连接对象 exter n _RecordsetPtr m_pRs;exter n _Comma ndPtr m_pCom;添加入下图:一3.12.5运行后,输入计算,点击模糊查询按钮,效果如下图:I C FidA|jp。