前两天用VS2013连接Mysql遇到了很多问题,上网搜了很多发现好多讲的并不清楚,于是乎我就想把我遇到的问题总结下来,帮助后来人少走点弯路。

步骤:

1:首先需要注意的是 Mysql版本是32位还是64位,如果是64位请将VS2013设置为 x64,具体设置为:右键项目->属性->在右上角有 “配置管理器” ->点击 修改为 x64

这么做的原因是接下来会用到 mysql 中有 libmysql.dll,而如果是64位的mysql,则该dll文件是64位的,正常的VS是用win32生成的是32位的,会导致无法调用!

2:接下来进行配置,首先请网上下载 myqls,并进行相应的安装。这里就不说了,安装过程比较简单。但需要注意的是 安装的时候记住 root设置的密码。这个root是指登陆数据库时候用到

配置过程:项目-》右键属性:

1)"VS++目录"->“包含目录”   将其设置为MYSQL中的include 所在目录 ,例如我的是 :C:\Program Files (x86)\MySQL\MySQL Server 5.5\include

"VS++目录“->"库目录"    将其设置这MYSQL中的lib所在目录,例如我的是: C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib

2)"C/C++"->”附加包含目录“  将其设置为 MYSQL 中的include 所在目录,依旧是 : C:\Program Files (x86)\MySQL\MySQL Server 5.5\include

3)链接器->常规->“附加库目录”    将其设置为 MYSQL中的inclde 所在目录,依旧是:C:\Program Files (x86)\MySQL\MySQL Server 5.5\include

链接器->常规->"输入" ->附加依赖项->填入  -> libmysql.lib    (注意该文件在mysql 的include文件夹下,程序在链接时候调用该 库文件)

至此,vs2013下的设置完毕!

3:数据库部分

1)开启 MYSQL数据库,在CMD下,输入: net start mysql    启动数据库

2   再将当前路径转到:C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin  下,输入   mysql -uroot  -p     然后让输入密码,这时输入当时安装mysql时的root密码。这时就进入了mysql下。

3:建立一个数据库:   输入 create  database  message;     则生成一个数据库message,接下来我们就要用VS2013中的程序连接这个message数据库。

4:在VS项目下,有如下代码:

首先stdafx.h  targetver.h  stdafx.cpp不需要管,在建立控制台项目的时候 会自动生成!

//CMysqlOperator.h

#pragma once

#include "stdafx.h"

#include

#include

#include

#include

using namespace std;

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

class CMysqlOperator

{

public:

//变量

MYSQL mysql;

CMysqlOperator();

~CMysqlOperator();

int ConnMysql(char* host, char* port, char* Db, char* user, char* passwd, char* charset, char* Msg);

int DeleteData(char* SQL, char* Msg);

string CMysqlOperator::SelectData(char* SQL, int Cnum, char* Msg);

int CMysqlOperator::UpdateData(char* SQL, char* Msg);

int CMysqlOperator::InsertData(char* SQL, char* Msg);

void CloseMysqlConn();

};

///CMysqlOperator.cpp

#include "StdAfx.h"

#include "CMysqlOperator.h"

#include

using namespace std;

CMysqlOperator::CMysqlOperator() {}

CMysqlOperator::~CMysqlOperator() {}

int CMysqlOperator::ConnMysql(char* host, char* port, char* Db, char* user, char* passwd, char* charset, char* Msg)

{

if (mysql_init(&mysql) == NULL)

{

Msg = "inital mysql handle error!";

return 1;

}

if (mysql_real_connect(&mysql, host, user, passwd, Db, 0, NULL, 0) == NULL)

{

Msg = "Failed to connect to database:Error!";

return 1;

}

if (mysql_set_character_set(&mysql, "GBK") != 0)

{

Msg = "mysql_set_charater_set_Error!";

return 1;

}

return 0;

}

string CMysqlOperator::SelectData(char* SQL, int Cnum, char* Msg)

{

MYSQL_ROW m_row;

MYSQL_RES *m_res;

char sql[2048];

sprintf_s(sql, SQL);

int rnum = 0;

char rg = 0x06; //行隔开

char cg = { 0x05 }; //字段隔开

if (mysql_query(&mysql, sql) != 0)

{

Msg = "select ps_info_Error!";

return "";

}

m_res = mysql_store_result(&mysql);

if (m_res == NULL)

{

Msg = "select username Error!";

return "";

}

string str("");

while (m_row = mysql_fetch_row(m_res))

{

for (int i = 0; i < Cnum; i++)

{

str += m_row[i];

str += cg;

}

str += rg;

rnum++;

}

mysql_free_result(m_res);

return str;

}

//插入数据

int CMysqlOperator::InsertData(char* SQL, char* Msg)

{

char sql[2048];

sprintf_s(sql, SQL);

if (mysql_query(&mysql, sql) != 0)

{

Msg = "Insert Data Error!";

return 1;

}

return 0;

}

//更新数据

int CMysqlOperator::UpdateData(char* SQL, char* Msg)

{

char sql[2048];

sprintf_s(sql, SQL);

if (mysql_query(&mysql, sql) != 0)

{

Msg = "Update Data Error!";

return 1;

}

return 0;

}

//删除数据

int CMysqlOperator::DeleteData(char* SQL, char* Msg)

{

char sql[2048];

sprintf_s(sql, SQL);

if (mysql_query(&mysql, sql) != 0)

{

Msg = "Delete Data Error!";

return 1;

}

return 0;

}

//关闭数据库连接

void CMysqlOperator::CloseMysqlConn()

{

mysql_close(&mysql);

}

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。  主函数 :

//

#include "stdafx.h"

#include "CMysqlOperator.h"

#include

using namespace std;

int main()

{

//char* host = "127.0.0.1";

char *host = "localhost";     //表示本地数据库

char* user = "root";

char* port = "3306";

char* passwd = "123456";

char* dbname = "message";    //这是数据库

char* charset = "GBK";

char* Msg = "";

CMysqlOperator *mysqlOperator = new CMysqlOperator();

if (mysqlOperator->ConnMysql(host, port, dbname, user, passwd, charset, Msg) == 0)

cout << "连接数据库成功!";

else

cout << Msg;

cout << "why";

getchar();

查询

//char* SQL = "SELECT userId, userName, passwd from userInfo";

//string str = mysqlOperator->SelectData(SQL, 4, Msg);

//if (str.length() > 0)

//{

//cout << "查询成功@!" << endl;

//cout << str.data() << endl;

//}

//else

//{

//cout << Msg;

//}

插入

//SQL = "Insert into userInfo(userId, userName, passwd) values(2, '张三', '12');";

//if (mysqlOperator->InsertData(SQL, Msg) == 0)

//{

//cout << "插入成功!" << endl;

//}

更新

//SQL = "Update userInfo set userName = '改了' where userId = 2";

//if (mysqlOperator->UpdateData(SQL, Msg) == 0)

//{

//cout << "更新成功!" << endl;

//}

删除

//SQL = "Delete from userInfo where id = 2";

//if (mysqlOperator->DeleteData(SQL, Msg) == 0)

//{

//cout << "删除成功!" << endl;

//}

//mysqlOperator->CloseMysqlConn();

//getchar();

return 0;

}

点击运行就ok 了!  注意:运行的时候会提示 无法找到 “libmysql.dll"  ,解决的方法是  找到C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib  下的 ”libmysql.dll“  将其复制到 你的 VS工程下的 debug下,因为正常上面会生成一个 CMysqlOperator.exe   ,该可执行文件在运行的时候会需要  ”libmysql.dll“文件!

vs2013 与mysql的连接数据库_VS2013连接Mysql数据库的设置以及常见问题相关推荐

  1. mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...

  2. php设置mysql查询编码,php连接mysql时怎么设置编码方式

    php连接mysql时怎么设置编码方式 php连接mysql数据库时,也就是在mysql_connect()语句之后添加"mysql_query("set names utf8&q ...

  3. php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法

    PHP连接mysql出现乱码的原因与解决方法 解决MySql数据库乱码的一个首要前提是保证 数据库+数据表+前端显示 编码一致,国内项目一般统一设定为GB2312或GBK,而国际化项目则一般使用utf ...

  4. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)

    一.说明 电脑系统:win10 qt版本:5.13.2和5.14.1(测试均成功) mysql版本:MySQL-5.5 本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动 ...

  5. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)

    本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动到qt连接mysql数据库(一.编译连接前准备) [全教程]qt连接mysql--从qt编译mysql驱动到qt连接my ...

  6. macOS安装MySQL,使用Navicat连接MySQL数据库/2022

    macOS安装MySQL,使用Navicat连接MySQL数据库/2022 intel chip 下载安装文件 进入官网 MySQL :: MySQL Downloads 选择页尾MySQL Comm ...

  7. eplise怎么连接数据库_Eclipse连接MySQL数据库(傻瓜篇)

    我的环境:MySQL:mysql-essential-5.1.51-win32 Eclipse:任意版本,免费的,可以百度的到. 下面来创建一个数据: mysql>CREATE DATABASE ...

  8. eplise怎么连接数据库_eclipse连接mysql

    JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语 ...

  9. jdbc连接数据库mysql的问题_JDBC连接Mysql数据库出现的问题汇总

    最近安装了一个 mysql 8.0 版本的数据库,在程序中连接的时候可谓是状况不断.之前也会遇到一些问题,这里就对使用 JDBC 连接 mysql 会出现的问题做一个汇总. 在此之前说明一下环境: 开 ...

最新文章

  1. boost::safe_numerics模块实现混合类型产生令人惊讶的结果的测试程序
  2. 重磅 | 20+技术大咖齐聚 阿里云数据库创新上云峰会进入一周倒计时
  3. 生成高分辨率pdf_用于高分辨率图像合成的生成变分自编码器
  4. Scylla——开源免费的优秀代理 IP 池:自动验证、JSON API、基于 React 的 Web UI、Docker 支持...
  5. 今日恐慌与贪婪指数为60 贪婪程度有所缓解
  6. VC++6遇到的问题(持续更新)
  7. 为什么会自动打开Nautilus文件管理器?
  8. unicode 特殊字符表 特殊符号
  9. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 6月29日
  10. 构建具有丰富功能的交互式 Kiosk
  11. 区块链游戏走出一地鸡毛,元宇宙3D国风链游或成最大受益者
  12. 如何使用谷歌插件自动备份标签
  13. 操作系统 -- 哲学家就餐问题
  14. Cocoapods:podspec与使用过程中遇到的问题
  15. 无穷(Infinity)是什么?
  16. 软件测评师--第七小时 面向对象测试技术
  17. 如何将会议录音转文字?你知道如何将会议录音转文字吗?
  18. 安徽工业大学计算机考研调剂,安徽工业大学考研调剂
  19. redis实例--加载所有省份
  20. Web开发人员需知的Web缓存知识

热门文章

  1. 安徽省计算机一级证书领取时间表,2020年安徽计算机软件水平考试合格证书领取通知...
  2. 域名怎么卖:建站出售
  3. 小米路由器PC客户端无法打开路由器…
  4. 公司搬家的教训,提几个注意事项
  5. 使用ONE(一个)API为博客添加每日一句话
  6. nodejs异步流程控制co 模块
  7. H.265与H.264的区别详解
  8. 关于山外多功能调试助手的虚拟示波器的使用说明
  9. 计算机网络命令dos命令大全,DOS命令大全:Ipconfig命令详解 – itShouce
  10. 中学生作文指导杂志中学生作文指导杂志社中学生作文指导编辑部2022年第22期目录