QT6.3用C语言的方法连接数据库例子(登录界面)

由于6.3无法用QT内部的SQL因此改用C语言的方法连接数据库

MySQL下载步骤详解

MySQL创建数据库参考:

MySQL创建数据库和创建数据表_小斌哥ge的博客-CSDN博客_mysql怎么创建数据表MySQL 创建数据库和创建数据表MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。在这之前,需要先安装好 MySQL ,然后创建好数据库、数据表、操作用户。一、数据库操作语言数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是SQL(Structured Query Language) 结构化查询语言。SQL 的主要功能是和数据库...https://blog.csdn.net/weixin_43790276/article/details/102655786?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166381439116782414920913%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166381439116782414920913&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-102655786-null-null.142%5Ev49%5Epc_rank_34_1,201%5Ev3%5Eadd_ask&utm_term=mysql%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93&spm=1018.2226.3001.4187MySQL Workbench使用教程_liyangtheking的博客-CSDN博客_mysql workbench怎么打开MySQL Workbench使用教程C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应!MySQLWorkbench 是一款专为 MySQL 设计的集成化桌面软件,也是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化两个版本。该软件支持 Windows 和 Linux 系统,可以从MySQL :: Download MySQL Workbe..https://blog.csdn.net/liyangtheking/article/details/121802689?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166381477416782414945405%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166381477416782414945405&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-121802689-null-null.142%5Ev49%5Epc_rank_34_1,201%5Ev3%5Eadd_ask&utm_term=mysql%20workbench%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187

在CMack.txt文件中引入

include_directories(D:/MySQL/include) //打开mysql.h文件
link_directories(D:/MySQL/lib) //打开mysql.lib文件
target_link_libraries(login_scr PRIVATE Qt${QT_VERSION_MAJOR}::Widgets libmysql) //连接到库

C语言的方法是在头文件中引入#include<mysql.h>

widget.hpp

#ifndef WIDGET_H
#define WIDGET_H
#include<mysql.h>
#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    MYSQL mysql;

private slots:

private:
    Ui::Widget *ui;

};
#endif // WIDGET_H

widget.cpp 

#include "widget.h"
#include "./ui_widget.h"
#include<QMessageBox>
#include<mysql.h>
#include<string.h>
#include<QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
//mysql_init为MySQL的函数,这个函数用来分配或者初始化一个MYSQL对象,用于连接mysql服务端
    mysql_init(&mysql);
//mysql_real_connect(&mysql,"主机名或IP地址","MySQL登录ID","MySQL密码","数据库名称",接口,unix_socket,client_flag) 
//如果接口不是0,其值将用作TCP/IP连接的端口号
//unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道
//如果连接成功,返回值与第1个参数的值相同,如果连接失败,返回NULL
    if(NULL!=mysql_real_connect(&mysql, "127.0.0.1", "root", "密码", "dbtest", 0, NULL, 0))
    {
        qDebug()<<"Connected to Mysql successfully!";
    }
    else {
        qDebug()<<" Connect failed";

    }
//设置输入模式,输入密码时为黑点
    ui->lineEdit_2->setEchoMode(QLineEdit::PasswordEchoOnEdit);
    connect(ui->pushButton_1,&QPushButton::clicked,this,[=](){
           QString zhanghao,mima,query;
           zhanghao = ui->lineEdit_1->text();
           mima=ui->lineEdit_2->text();
           qDebug()<<zhanghao<<mima;
//SQL查找语句
           query="select * from user where username='"+zhanghao+"' and password='"+mima+"'";
           qDebug()<<"SQL:"<<query;
//QString转std标准库的String
           std::string qu=query.toStdString();
//mysql_query()查询成功则返回0
           int res=mysql_query(&mysql,qu.data());
           if(res==0)
           {
//mysql_store_result()取出查询到的结果集
                 MYSQL_RES *result = mysql_store_result(&mysql);
//取结果集行数,只有一行则登录成功
                 my_ulonglong rowCount = mysql_num_rows(result);

                 if (rowCount == 1)
                 {
                   qDebug()<<"successfully!";
                 }
                 else
                 {
                   qDebug()<<"failed";
                 }
          }
          else
               qDebug()<<"res:"<<res;
});
}


Widget::~Widget()
{
    delete ui;
}






 

 
 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值