请问谁能指导VS2010下MFC 查询mysql的例子?局域网http://192.168.1.223上通过 phpstudy建立一个mysql数据库,用户名root,密码note2016,端口3306,数据库名cxdayang,表名user,请问如何编写一个MFC的登录小程序(做为例子)。我百度了三天,按教程操作还是出错,由于C++仅学完基础语法,MFC仅入门,请有能力的帮忙做出这样的一个小例子供我参详好吗?本人WIN7 64位,VS2010
6条回答 默认 最新
- devmiao 2016-03-04 21:52关注
#include<Windows.h> #include<string> #include<iostream> #include<mysql.h> #include<stdio.h> int main() { //connectionparams char *host = "192.168.1.223"; char *user = "root"; char *pass = "note2016"; char *db = "cxdayang"; unsignedint port = 3306; //server port MYSQL *sock; MYSQL_RES *res; MYSQL_FIELD * fd; MYSQL_ROW row; char szSqlText[500]=""; inti; inttcreate=0; sock=mysql_init(0); if(sock &&mysql_real_connect(sock,host,user,pass,db,0,NULL,0)) { std::cout<<"connect mysqlsucceed!"<<std::endl; //mysql_set_character_set(sock,"utf8"); mysql_query(sock, "set namesgb2312"); //mysql_query(sock, "SET NAMESGBK"); //设置编码格式,否则在cmd下无法显示中文 //connectioncharacter set //waitfor possibility to checksystem/mysqlmysqlets if(tcreate) { sprintf(szSqlText,"create table datatable (id int(3) auto_increment not null primarykey,timedatetime,name char(10) not null,addressvarchar(20),year date,s1char(11) ,s2 int default '1') CHARACTER SET utf8");//构造SQL语句 新建一张表 std::cout<<"Create table tttable!"<<std::endl; tcreate = 1; if(mysql_query(sock,szSqlText))//执行Dsql语句,并判断是否出错 { std::cout<<"can't createtable:"<<mysql_error(sock)<<std::endl; //tcreate = 0; mysql_close(sock); return FALSE; } } sprintf(szSqlText,//向mytable这个表插入数据 注意时间格式 "insert intodatatable values('1','2010-10-08', 'bj','深圳一中','2010-10-08','MySQLTest',20)"); std::cout<<"Insert data totable!"<<std::endl; if(mysql_query( sock, szSqlText)) { std::cout<<"Can'tinsert data to table"<<mysql_error(sock)<<std::endl; mysql_close( sock); return FALSE ; } sprintf(szSqlText, "select* from datatable"); std::cout<<"select* fromdatatable!"<<std::endl; if(mysql_query( sock, szSqlText))//进行数据检索并检查有无错误 { mysql_close( sock); return FALSE ; } else { std::cout<<"mysql_store_result!"<<std::endl; res=mysql_store_result( sock) ;//取得查询结果,保存查询到的数据到res i = (int)mysql_num_rows(res ) ;//取得有效记录数 std::cout<<"Query:"<<szSqlText<<"\n"<<i<<" recordsfound:"<<std::endl; for( i = 0 ; fd =mysql_fetch_field( res ); i++ )//获取列名 std::cout<<fd->name<<"\t"; std::cout<<std::endl;//输出各字段名 while(row =mysql_fetch_row( res))//获取具体的数据,依次读取各条记录 std::cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<std::endl; mysql_free_result(res ); //释放结果资源 } } else//连接数据库出错 { std::cout<<"cannot connect tothe sock sever "<<mysql_error(sock)<<std::endl; mysql_close(sock); return FALSE; } mysql_close(sock);//断开连接 system("pause"); return TRUE; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报