码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vs如何读取mysql中的数据(顺便通过代码解决了中文乱码问题)


    PS:也是看了别人博客,然后也花了挺久的,觉得麻烦就写这篇博客。

    目录

    一、在vs中新建一个工程,然后新建一个源文件

    二、右击上述图片中的mysql_test工程名,然后在最下方找到属性,并点击

    三、点击VC++目录,在包含目录中添加mysql的文件路径,一般情况下的mysql的默认安装路径都是在C盘的Program Files下的,找到include路径,然后点击确定

    四、在C/C++中的常规选项中,找到附加包含目录,同时也将mysql的include路径包含进去 

    五、在属性页中选择链接器的常规选项,在里面找到附加库目录,然后添加mysql的lib路径

    六、 在链接器的输入选项中,找到附加依赖项,然后直接写上libmysql.lib

    七、最后再mysql的bin目录中,将libmysql.dll复制一份到c:\windows\system32路径下即可。

    八、随便找一段代码测试,这里用的是其他人的博客里面的代码,当然有些许是修改了的,这里会作相应介绍。

    九、如果成功即显示如下的提示信息框

    十、打印结果

    一、在vs中新建一个工程,然后新建一个源文件

    二、右击上述图片中的mysql_test工程名,然后在最下方找到属性,并点击

    三、点击VC++目录,在包含目录中添加mysql的文件路径,一般情况下的mysql的默认安装路径都是在C盘的Program Files下的,找到include路径,然后点击确定

    四、在C/C++中的常规选项中,找到附加包含目录,同时也将mysql的include路径包含进去 

    五、在属性页中选择链接器的常规选项,在里面找到附加库目录,然后添加mysql的lib路径

    六、 在链接器的输入选项中,找到附加依赖项,然后直接写上libmysql.lib

    七、最后再mysql的bin目录中,将libmysql.dll复制一份到c:\windows\system32路径下即可。

    八、随便找一段代码测试,这里用的是其他人的博客里面的代码,当然有些许是修改了的,这里会作相应介绍。

    mysql测试代码如下:

    1. create database test;
    2. use test;
    3. create table test_1(name varchar(128),age int);
    4. insert into test_1 values('獜洛橙',18);

    vs测试代码如下(要注意修改mysql用户名和密码为自己的,同时还有database的名字和里面的表的名字,我这里用户名是root,密码是123456,database是上面mysql测试代码中的test,表名是test_1):

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. using namespace std;
    7. MYSQL mysql; //mysql连接
    8. MYSQL_RES* res; //一个结果集结构体
    9. MYSQL_ROW row; //char** 二维数组,存放一条条记录
    10. const char DataBase_UserName[] = "root"; //数据库用户名username
    11. const char DataBase_Password[] = "123456"; //数据库密码,填自己的密码
    12. const char DataBase_Host[] = "localhost"; //数据库连接地址
    13. //注意有时候使用主机ip会报错,此时可以将ip改为localhost
    14. const char DataBase_Name[] = "test"; //database name
    15. unsigned int DataBase_Port = 3306; //server port
    16. bool ConnectDatabase(); //函数申明
    17. void FreeConnect(); //释放资源
    18. wchar_t* Utf8_2_Unicode(char* row_i)
    19. {
    20. int len = MultiByteToWideChar(CP_UTF8, 0, row_i, strlen(row_i), NULL, 0);
    21. wchar_t* wszStr = new wchar_t[len + 1];
    22. MultiByteToWideChar(CP_UTF8, 0, row_i, strlen(row_i), wszStr, len);
    23. wszStr[len] = '\0';
    24. return wszStr;
    25. }
    26. void main()
    27. {
    28. setlocale(LC_ALL, "chs");
    29. ConnectDatabase(); //连接数据库
    30. //查询数据
    31. mysql_query(&mysql, "SELECT * from test_1");
    32. //获取结果集
    33. res = mysql_store_result(&mysql);
    34. //显示数据
    35. //给ROW赋值,判断ROW是否为空,不为空就打印数据。
    36. while (row = mysql_fetch_row(res))
    37. {
    38. wchar_t* m1 = Utf8_2_Unicode(row[0]);
    39. wchar_t* m2 = Utf8_2_Unicode(row[1]);
    40. wprintf_s(L"%s %s", m1,m2);
    41. }
    42. FreeConnect();
    43. getchar();
    44. }
    45. bool ConnectDatabase()
    46. {
    47. //初始化mysql
    48. mysql_init(&mysql); //连接mysql,数据库
    49. //中间分别是主机,用户名,密码,数据库名,端口号(可以写默认0或者3306等),可以先写成参数再传进去
    50. if (!(mysql_real_connect(&mysql, DataBase_Host, DataBase_UserName, DataBase_Password, DataBase_Name, DataBase_Port, NULL, 0))) {
    51. printf("Error connecting to database:%s\n", mysql_error(&mysql));
    52. return false;
    53. }
    54. else {
    55. MessageBoxA(NULL, "连接MYSQL数据成功!", "消息", MB_OK);
    56. printf("Connected...\n");
    57. return true;
    58. }
    59. }
    60. //释放资源
    61. void FreeConnect() {
    62. mysql_close(&mysql);
    63. }

    九、如果成功即显示如下的提示信息框

    十、打印结果(成功显示)

  • 相关阅读:
    MySQL(1) 索引结构
    HJ33整数与IP地址间的转换
    Liunx文件目录操作命令(cd、pwd、ls、mkdir、rmdir)
    解决docker通过volumes挂载文件,宿主机修改后容器内不同步,重启服务才能同步
    卡尔曼滤波(Kalman Filter)原理浅析-数学理论推导-2
    eBPF理解 (一)
    Redis缓存的高并发问题
    20240309-1-校招前端面试常见问题-前端框架及常用工具
    PPT系统化学习 - 第1天
    Dubbo实战运用Demo、SpringBoot整合Dubbo、Dubbo中超时重试和负载均衡策略
  • 原文地址:https://blog.csdn.net/weixin_54627824/article/details/125991264
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号