A1200266 2016-03-04 01:49 采纳率: 0%
浏览 3927
已采纳

VS2010下MFC 查询mysql的例子

请问谁能指导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; 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大