mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL

数据库操作:MFC连接与MYSQL

mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操作。~有点伤心。

只能去看MYSQL手册,里面有C与MYSQL的API接口;由于MFC框架中调试比较困难,所以我现在win32控制台下实现与数据库的连接与对数据库的操作。(可能这也是原因之一,我错误的以为MFC是程序主体,其实MFC只是界面和消息相应,有点伤~).

首先我用的是是MYSQL5.5(建议按装32位的)

为了方便我在MYSQL中新建一个用户,并给与其相应权限

接下来我先进行了控制台上的编程:

#include"winsock.h"

#include"mysql.h"

#pragma comment(lib,"libmySQL.lib")

#include "stdio.h"

#include

struct conn_info

{

char *host;

char *user;

char *password;

char *db;

};

MYSQL* mysql_conn_setup(conn_info con)

{

MYSQL *mysql = mysql_init(NULL);

if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))

{

printf("Conection error : %s/n", mysql_error(mysql));

exit(1);

}

return mysql;

}

MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)

{

if(mysql_query(mysql,sql_Query))

{

printf("MySQL quer error:%s/n",mysql_error(mysql));

exit(1);

}

return mysql_use_result(mysql);

}

void main()

{

MYSQL *com;

MYSQL_RES *res;

MYSQL_ROW row;

char sql_query[100];

memset(sql_query,'\0',100);

sprintf(sql_query,"show tables");

struct conn_info info;

info.host="localhost";

info.user="lemon";

info.password="123";

info.db="student";

com=mysql_conn_setup(info);

res=mysql_conn_sqlQuery(com,sql_query);

printf("mysql所有表:\n");

int k=0;

while((row=mysql_fetch_row(res))!=NULL)

{

printf("%s\n",row[0]);

}

mysql_free_result(res);

mysql_close(com);

}

f98451ce6fab68c1489578984379ba98.png

能显示出来数据库中表的张数(我去,用API就是这么快);

struct conn_info

{

char *host;

char *user;

char *password;

char *db;

};

其中结构体内保存了连接数据库所需要的信息,包括用户名,接口,密码,数据库

MYSQL* mysql_conn_setup(conn_info con)

{

MYSQL *mysql = mysql_init(NULL);

if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))

{

printf("Conection error : %s/n", mysql_error(mysql));

exit(1);

}

return mysql;

}

是测试是否连接上数据库;

MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)

{

if(mysql_query(mysql,sql_Query))

{

printf("MySQL quer error:%s/n",mysql_error(mysql));

exit(1);

}

return mysql_use_result(mysql);

}

是向数据库传入你要操作的语句,sql_Query中保存的SQL语句,mysql为主程序中申明的MYSQL指针

row=mysql_fetch_row(rew)

是抓取MYSQL返回的行数

用到mysql的部分基本上是这些,解释有点俗请见谅;

用API就是这么爽!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值