当前位置:网站首页>VS2017连接MYSQL
VS2017连接MYSQL
2022-07-31 05:15:00 【龙虾在剥我的壳】
一、环境配置
第一步:
属性管理器—>属性—>C/C+±–>常规—>附加包含目录(添加mysql下的include文件夹的路径)
第二步:
链接器—>常规—>附加库目录,把mysql文件里的lib文件的路径添加进去
第三步:
链接器—>输入—>附加依赖项,将libmysql.lib写入
第四步:
把静态库libmysql.lib复制放到解决方案的x64下的debug文件目录下
因为有多个Debug 若不确定复制到哪一个Debug下,可以在多个Debug都复制过去
这步完成,环境就配置结束了,那我们怎么确认是否有问题呢?接下来我们来进行测试
二、连接测试
打开VS2017—>工具—>连接到数据库,在数据源里选择MySQL Database
填写:数据库名、用户名及密码和数据库表名
点击测试连接,若出现测试连接成功,我们就可以在VS里对数据库进行增删改查等操作了
这是数据库
三、代码实现
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<Windows.h>
#include<WinSock.h>
#include<mysql.h>
using namespace std;
#pragma comment(lib,"libmysql.lib")
#pragma comment(lib,"wsock32.lib")
MYSQL *mysql = new MYSQL; //mysql连接
MYSQL_FIELD *fd; //字段列数组
char field[32][32]; //存字段名二维数组
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集
MYSQL_ROW column; //一个行数据的类型安全(type-safe)的表示,表示数据行的列
char query[150]; //查询语句
bool ConnectDatabase();
bool QueryDatabase1();
//bool QueryDatabase2();
int main() {
ConnectDatabase();
QueryDatabase1();
//QueryDatabase2();
system("pause");
return 0;
}
bool ConnectDatabase() {
//初始化mysql
mysql_init(mysql);
//返回false则连接失败,返回true则连接成功
if (!(mysql_real_connect(mysql, "localhost", "root", "root", "test", 3306, NULL, 0))) //中间分别是主机,用户名,密码,数据库名,端口号(可以写默认0或者3306等),可以先写成参数再传进去
{
printf("Error connecting to database02:%s\n", mysql_error(mysql));
return false;
}
else {
printf("Connected...\n");
return true;
}
return true;
}
bool QueryDatabase1() {
sprintf_s(query, "select * from t_news"); //执行查询语句,这里是查询所有,user是表名,不用加引号,用strcpy也可以
mysql_query(mysql, "set names gbk"); //设置编码格式(SET NAMES GBK也行),否则cmd下中文乱码
//返回0 查询成功,返回1查询失败
if (mysql_query(mysql, query)) //执行SQL语句
{
printf("Query failed (%s)\n", mysql_error(mysql));
return false;
}
else {
printf("query success\n");
}
//获取结果集
if (!(res = mysql_store_result(mysql))) //获得sql语句结束后返回的结果集
{
printf("Couldn't get result from %s\n", mysql_error(mysql));
return false;
}
//打印数据行数
printf("number of dataline returned: %lld\n", mysql_affected_rows(mysql));
//获取字段的信息
char *str_field[32]; //定义一个字符串数组存储字段信息
for (int i = 0; i < 6; i++) //在已知字段数量的情况下获取字段名
{
str_field[i] = mysql_fetch_field(res)->name;
}
for (int i = 0; i < 3; i++) //打印字段
printf("%10s\t", str_field[i]);
printf("\n");
//打印获取的数据
while (column = mysql_fetch_row(res)) //在已知字段数量情况下,获取并打印下一行
{
printf("%10s\t%10s\t%10s\t%10s\t%10s\t%10s\n", column[0], column[1], column[2], column[3], column[4], column[5]); //column是列数组
}
return true;
}
四、结果展示

五、扩展
5.1 每次新建项目,都需要重新配置数据库环境,有个一劳永逸的方法,即:建一个项目属性表,之后的项目,直接添加配置完成的表就行,无需每次配环境.若有需要,可参考以下文章:
Visual Studio(VS)将工程配置保存到属性表
vs如何将工程配置,保存到属性表
5.2 mysql和vtk等库环境可以一起配在一个属性表里
欢迎大家交流探讨!
边栏推荐
- Digital twins will be an important way to enter the "metaverse"
- What is GameFi?
- sql add default constraint
- Attribute Changer的几种形态
- MySQL compressed package installation, fool teaching
- How to distinguish big and small endian in C language
- Linux中mysql密码修改方法(亲测可用)
- this指向问题
- Build DVWA with phpstudy
- this points to the problem
猜你喜欢

MySQL高级学习笔记

this points to the problem

MySQL compressed package installation, fool teaching
![[Cloud native] Open source data analysis SPL easily copes with T+0](/img/89/4a96358956782ef9dacf0b700b54c3.png)
[Cloud native] Open source data analysis SPL easily copes with T+0

MySql创建数据表

js中的全局作用域与函数作用域

unicloud 发布后小程序提示连接本地调试服务失败,请检查客户端是否和主机在同一局域网下

flutter 混合开发 module 依赖

The latest MySql installation teaching, very detailed

For penetration testing methods where the output point is a timestamp (take Oracle database as an example)
随机推荐
SQLite 查询表中每天插入的数量
mac10.14中安装mysqldb
Flutter mixed development module dependencies
Using IIS10 to build an asp website in win11
mysql启动报错The server quit without updating PID file几种解决办法
Error: Cannot find module 'D:\Application\nodejs\node_modules\npm\bin\npm-cli.js'
2021年京东数据分析工程师秋招笔试编程题
unicloud 发布后小程序提示连接本地调试服务失败,请检查客户端是否和主机在同一局域网下
sqlite 查看表结构 android.database.sqlite.SQLiteException: table splitTable has no column named
What is GameFi?
MySQL高级学习笔记
js中的break与continue退出
powershell统计文件夹大小
sql add default constraint
cocos2d-x-3.2创建项目方法
对js的数组的理解
一文速学-玩转MySQL获取时间、格式转换各类操作方法详解
npm WARN config global `--global`, `--local` are deprecated. Use `--location解决方案
quick-3.5 无法正常显示有混合纹理的csb文件
Linux modify MySQL database password