您的位置:首页 > 数据库 > MySQL

MFC连接MySQL7.9数据库程序教程

2015-12-16 13:38 225 查看
MFC连接数据库常用的方法有三种:1.ODBC2.MFC数据库类3.DAO数据库本文采用第二种方法(据说第三种方法最简单,管他呢,MFC数据库类已经很白痴了)第一步:配置DSN,方法如下:http://download.csdn.net/detail/feilongzaitianhehe/9360493安装Mysql ODBC driver,下载路径http://download.csdn.net/detail/feilongzaitianhehe/9360669第二步:新建一个MFC应用程序,然后随便弄个鼠标响应事件或者菜单响应事件什么的。添加如下代码:
try{CDatabase db;if( db.Open(NULL,FALSE,FALSE,"ODBC;DSN=mysql5.3 Unicode-user;UID=root;PWD=abcdef")){db.ExecuteSql("insertinto UserMaster values( 'TestID' , 'Test User Name' , 0)");db.Close();}}catch (CDBException* e){AfxMessageBox( e->m_strError);e->Delete();}<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">      </span>
具体的SQL语句根据你的字段不同而不同啦,然后去数据库看一下数据插入了没有,如果插入了,恭喜你,MFC连接数据库最头疼的部分搞定了,接下来的事情就是查一下MFC类库,进行响应操作而已,很easy。第三步:查询数据   其实有了上面那几行代码进行增删改都没有问题了,下面讲解一下查询数据。MFC提供了一个CRecordset对象,(用以代表一个表,我是这么理解的,事实也是这样的),我们可以通过类向导新建一个代表一张表的CRecordset类。方法如下:  
 try{CRecordsetrs(&db);rs.Open(CRecordset::forwardOnly,_T("SELECT * FROM vendors"));CDBVariantvarValue;shortnFields=rs.GetODBCFieldCount();intdatatype=0;for(shortindex=0; index<nFields; index++){rs.GetFieldValue(index,varValue);datatype=varValue.m_dwType;if(index==0){Id_Str.Format(L"%ld",varValue.m_lVal);}elseif(index==1){if(datatype==0)Name_Str="";elseName_Str=*varValue.m_pstring;}elseif(index==2){if(datatype==0)Address_Str="";elseAddress_Str=*varValue.m_pstring;}elseif(index==3){if(datatype==0)City_Str="";elseCity_Str=*varValue.m_pstring;}elseif(index==4){if(datatype==0)State_Str="";elseState_Str=*varValue.m_pstring;}elseif(index==5){if(datatype==0)Zip_Str="";elseZip_Str=*varValue.m_pstring;}elseif(index==6){if(datatype==0)Country_Str="";elseCountry_Str=*varValue.m_pstring;}}UpdateData(FALSE);rs.Close();AfxMessageBox(L"QuaryOne Row Success!");}catch(CDBException*Err){AfxMessageBox(Err->m_strError);Err->Delete();}        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL MFC odbc 数据库