首页 > 数据库技术 > 详细

vs连接MySQL

时间:2019-08-05 23:28:20      阅读:141      评论:0      收藏:0      [点我收藏+]

20:20:30 2019-08-05

开始学习安装MySQL

22:59:56 2019-08-05

编码错误问题未解决

参考博客:https://www.cnblogs.com/Enceladus/p/11197971.html

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

安装MySQL:https://blog.csdn.net/qq_35987486/article/details/84066304

 学习MySQL:W3School

这里主要写下初步的使用

点击加号

技术分享图片

技术分享图片

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

点击进入

技术分享图片

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

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

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

技术分享图片

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

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

 

 技术分享图片

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

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

PK表示Primary Key 主键

NN是Not Null 不能为空 

UQ Unique 表示不能重复

B Binary 二进制

UN Unsigned 整型

AI: auto increment自增

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

附一张上面博客截图

技术分享图片

点击Apply

技术分享图片

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

接下来测试下

技术分享图片

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

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

技术分享图片

 

写完后点击圈主的地方 

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

接下来连接vs与MySQL

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

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

 

技术分享图片

选择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") 与这个效果一样)

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

技术分享图片
 1 #include "mainwindow.h"
 2 #include <QApplication>
 3 #include <mysql.h>
 4 #include <cstdio>
 5 #include <qpushbutton>
 6 #include<qfont>
 7 #include <QVBoxLayout>
 8 
 9 
10 char S[100];
11 int main(int argc, char *argv[])
12 {
13     MYSQL mysql, *sock; //声明MySQL的句柄
14     const char * host = "127.0.0.1"; //因为是作为本机测试,所以填写的是本地IP
15     const char * user = "root"; //这里改为你的用户名,即连接MySQL的用户名
16     const char * passwd = "*****"; //这里改为你的用户密码
17     const char * db = "translation"; //这里改为你要连接的数据库的名字,一个数据可能有几张表
18     unsigned int port = 3306; //这是MySQL的服务器的端口,如果你没有修改过的话就是3306。
19     const char * unix_socket = nullptr; //unix_socket这是unix下的,我在Windows下,所以就把它设置为NULL
20     unsigned long client_flag = 0; //这个参数一般为0
21 
22     const char * i_query = "select ID, Nickname, score from users"; //查询语句,从那个表中查询,这里后面没有;
23 
24     MYSQL_RES * result; //保存结果集的
25     MYSQL_ROW row; //代表的是结果集中的一行
26                    //my_ulonglong row;
27     mysql_init(&mysql); //连接之前必须使用这个函数来初始化
28     if ((sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag)) == nullptr) //连接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("ID is %s\n", row[0]); //打印当前行的第一列的数据
56                 printf("Nickname is %s\n", row[1]); //打印当前行的第二列的数据
57                 printf("score is %s\n", row[2]);
58                 sprintf_s(S, "==%s==", row[1]);
59 
60                 //row = mysql_num_row(result);
61                 //printf("%lu\n", mysql_num_row(result));
62             }
63         }
64 
65     }
66     QApplication a(argc, argv);
67     QWidget window;
68     window.resize(200,120);
69     QVBoxLayout layout;
70     QPushButton quit(S,&window);
71     quit.setFont(QFont("Times",18,QFont::Bold));
72     QObject::connect(&quit,SIGNAL(clicked()),&a,SLOT(quit()));
73     layout.addWidget(&quit);
74     window.setLayout(&layout);
75     window.show();
76     return a.exec();
77 }
View Code

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

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

运行结果图

技术分享图片

输出了奇怪的东西。。。应该是编码格式的问题

 

vs连接MySQL

原文:https://www.cnblogs.com/57one/p/11306136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!