vs2013qt如何连接到mysql_vs连接MySQL

20:20:30 2019-08-05

开始学习安装MySQL

22:59:56 2019-08-05

编码错误问题解决

要用数据库 就得先安装(废话) 大佬们说的SQL Server、Oracle、Sybase、DB2我都没听过 只听过MySQL

学习MySQL:W3School

这里主要写下初步的使用

点击加号

8a11c0b9f196c61e734ab76f71e8bc4d.png

0dfa294fc6620d45aa00ed91c146ea57.png

过程中应该会让输入密码 就是在安装MySQL时 输入的密码(用户名默认为root)

点击进入

a2cc6b02bbe8ff41f0c99b1550af84a3.png

点击圈住的地方 设置自己数据库的名字 apply finish

可以发现左下角 SCHEMAS的地方有了我们刚刚新建的数据库

点击创建的数据库 点击Table 右键 creat table

7932bc55dbc04f576e328c2821158078.png

现在我们可以通过点击column name 下的白框来创建 我们需要的属性

当然了 table_name 也改成自己想要的名字(使用时发现 如果column没有属性 会出错)(os:没有属性。。。用数据库干啥)

8ec055353341f518c7a35fcfacdc7d56.png

再看看数据类型 VARCHAR 就是字符串 INT表示整型 括号里的数字表示宽度

再后面一列是圈起来的缩写

PK表示Primary Key 主键

NN是Not Null 不能为空

UQ Unique 表示不能重复

B Binary 二进制

UN Unsigned 整型

AI: auto increment自增

ZF: zero fill 值中最有意义的字节总为0,并且不保存

附一张上面博客截图

ebc9b400ca5923ce76483e5b8a208d50.png

点击Apply

a1c34c6f301e1f4afe8e4a2e90b671f5.png

刚刚我们设计是用UI来设计的 最后要学会直接用SQL语句来写

接下来测试下

64e80a1349f2d6a28da2e2de6ac0e49a.png

在圈住的地方点击右键 选择 select rows-limit 1000(查询行数上限可改)

接下来可以先看看 sql基本语句教程 找到我们需要的语句

97cd446ee6441802c0b15009f6ef7850.png

写完后点击圈主的地方

注意:我们选的id做为主键 不能重复插入一个相同的主键 会报错

接下来连接vs与MySQL

我下的MySQL是64位的 所以需要把debug 改为x64

需要设置的部分:右键项目 选择属性

50f0645f2d35940c565b130f360c1560.png

选择c/c++ 附加包含目录 添加 C:\Program Files\MySQL\MySQL Server 8.0\include(根据文件存放位置)

选择链接器 附加库目录 添加 C:\Program Files\MySQL\MySQL Server 8.0\lib(根据文件存放位置)

选择连接器 选择输入 附加依赖项 添加:libmysql.lib(#pragma comment(lib, "libmysql.lib") 与这个效果一样)

之后可以拿别人的代码改成自己的来试试

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2 #include

3 #include

4 #include

5 #include

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

7

8 int main(void)9 {10 MYSQL mysql, * sock; //声明MySQL的句柄

11 const char* host = "127.0.0.1"; //因为是作为本机测试,所以填写的是本地IP

12 const char* user = "root"; //这里改为你的用户名,即连接MySQL的用户名

13 const char* passwd = ""; //这里改为你的用户密码

14 const char* db = "text"; //这里改为你要连接的数据库的名字,一个数据可能有几张表

15 unsigned int port = 3306; //这是MySQL的服务器的端口,如果你没有修改过的话就是3306。

16 const char* unix_socket = NULL; //unix_socket这是unix下的,我在Windows下,所以就把它设置为NULL

17 unsigned long client_flag = 0; //这个参数一般为0

18

19 const char* i_query = "select * from datastudent"; //查询语句,从那个表中查询,这里后面没有;

20

21

22 MYSQL_RES* result; //保存结果集的

23 MYSQL_ROW row; //代表的是结果集中的一行24 //my_ulonglong row;

25

26 mysql_init(&mysql); //连接之前必须使用这个函数来初始化

27 mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");28 if ((sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag)) == NULL) //连接MySQL

29 {30 printf("fail to connect mysql \n");31 fprintf(stderr, "%s\n", mysql_error(&mysql));32 exit(1);33 }34 else

35 {36 fprintf(stderr, "connect ok!!\n");37 }38

39 if (mysql_query(&mysql, i_query) != 0) //如果连接成功,则开始查询 .成功返回0

40 {41 fprintf(stderr, "fail to query!\n");42 exit(1);43 }44 else

45 {46 if ((result = mysql_store_result(&mysql)) == NULL) //保存查询的结果

47 {48 fprintf(stderr, "fail to store result!\n");49 exit(1);50 }51 else

52 {53 while ((row = mysql_fetch_row(result)) != NULL) //读取结果集中的数据,返回的是下一行。因为保存结果集时,当前的游标在第一行【之前】

54 {55 printf("name is %s\t", row[0]); //打印当前行的第一列的数据

56 printf("id is %s\t\n", row[1]); //打印当前行的第二列的数据

57 printf("math is %s\t\n", row[2]);58 printf("province is %s\t\n", row[3]);59 //row = mysql_num_row(result);60 //printf("%lu\n", mysql_num_row(result));

61 }62 }63

64 }65 mysql_free_result(result); //释放结果集

66 mysql_close(sock); //关闭连接

67 system("pause");68 exit(EXIT_SUCCESS);69

70 }

View Code

如果运行出现了找不到libmysql.dll 从C:\Program Files\MySQL\MySQL Server 8.0\lib 中复制一份到c盘的windows文件下的System32

同样遇到libeay32.dll 和ssleay32 找不到的问题也是这样的做法

运行结果图

69b19b96ab4e4b5a003d21d0d8f1a195.png

如果输出中文乱码 改一下编码格式

我的是在mysql_init(&mysql);后加上 mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"); 这样就改变了编码格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值