Qt远程连接数据库,注册,登录

Qt远程连接数据库

1、设计登录界面

|---------------|
| 在ui设计师中设计登录界面 |

2、设计注册界面


3、注册按钮

3.1添加头文件

cpp 复制代码
#include "clientregister.h"

3.2连接注册按钮信号与槽

cpp 复制代码
private slots:

    void on_registerPushButton_clicked();          //注册按钮

3.3注册按钮实现

cpp 复制代码
//注册按钮
void Widget::on_registerPushButton_clicked()
{
    clientRegister regDialog;       //创建注册界面对话框对象
    regDialog.setGeometry(this->geometry());        //设置对话框几何形状与当前对话框相同 

    // 显示模态对话框并点击了确定接收操作
    if (regDialog.exec() == QDialog::Accepted) {
        QMessageBox::information(this, "提示", "注册成功");       //弹出注册成功消息框
    }

}

3.4实现点击注册按钮

|------------------------|
| 在clientRegister文件中实现 |

clientRegister.h


clientRegister.cpp

cpp 复制代码
void clientRegister::on_regEnterPushButton_clicked()
{
    QString newAccount = ui->newALineEdit->text();      //获取账号输入框文本
    QString newPassword = ui->newPLineEdit->text();     //获取密码输入框文本

    //判断账号和密码是否为空
    if(newAccount.isEmpty() || newPassword.isEmpty()){
        QMessageBox::warning(this, "错误", "账号和密码不能为空");      账号或密码为空提示
        return;
    }

    newPasswordSure newPasswordDialog(newPassword);                //创建个新密码确认界面
    newPasswordDialog.setGeometry(this->geometry());               //新创建的界面与当前界面重合

    //按下了确认键
    if(newPasswordDialog.exec() == QDialog::Accepted)
    {

        QSqlDatabase db = QSqlDatabase::database(); // 使用主界面的数据库连接
        if(!db.isOpen())        //数据库没有打开
        {
            QMessageBox::critical(this, "错误", "数据库未连接");
            return;
        }

        QSqlQuery query;        //创建一个数据库查询对象
        query.prepare("INSERT INTO users (account, password) VALUES (:account, :password)"); // 查询语句SQL
        query.bindValue(":account", newAccount);        //绑定账号键
        query.bindValue(":password", newPassword);      //绑定密码键

        //数据库成功执行
        if(query.exec())
        {

            QMessageBox::information(this, "成功", "注册成功");       //提示注册成功
            this->close();          //关闭
        }
        else
        {
            QString error =  query.lastError().text();      //获取错误信息
            if(error.contains("Duplicate entry"))       //如果错误信息中包含重复条目
            {
                QMessageBox::warning(this, "错误", "账号已存在");          //错误提示
            }
            else
            {
                QMessageBox::critical(this, "失败", "错误: " + error);    //显示失败 

            }

        }

    }

}

4、登录按钮

4.1连接登录按钮信号与槽

4.2登录按钮实现

cpp 复制代码
//登录按钮
void Widget::on_loginPushButton_clicked()
{
    QString account = ui->accountLineEdit->text();          //获取账号输入框文本
    QString password = ui->passwordLineEdit->text();        //获取密码输入框文本

    //如果账号或密码输入框为空
    if(account.isEmpty() && password.isEmpty())
    {
        QMessageBox::warning(this, "警告", "账号或密码不能为空");
    }

    QSqlQuery loginquery;       //创建数据库查询操作
    loginquery.prepare("select * from users where account =:account and password =:password");      //查询
    loginquery.bindValue(":account",account);           //将实际账号值绑定到参数
    loginquery.bindValue(":password",password);         //将实际密码值绑定到参数

    //查询成功且有下一条记录
    if(loginquery.exec() && loginquery.next())
    {
        QMessageBox::information(this, "成功", "登录成功");       //弹出查询成功信息框
    }
    else
    {
        QMessageBox::critical(this, "失败", "账号或密码错误");     //弹出查询失败信息框
    }
}

5、数据库连接

5.1创建数据库对象

cpp 复制代码
QSqlDatabase db;                               //创建数据库

5.2连接数据库

cpp 复制代码
       //选择数据库
       db = QSqlDatabase::addDatabase("QMYSQL");       //连接数据库驱动
       db.setHostName("192.168.74.128");               //设置数据库主机名
       db.setUserName("users");                        //设置数据库银魂
       db.setDatabaseName("clientdatabase");           //设置要连接的数据库名称
       db.setPassword("user");                         //设置密码


       //数据库连接
       if(db.open())
       {
           QMessageBox::information(this,"数据库连接提示","连接成功");         //数据库连接成功,提示
       }
       else
       {
           QMessageBox::critical(this, "数据库连接失败",db.lastError().text());    //数据库连接失败显示错误信息
           qDebug() << db.lastError();


       }

6、代码地址

代码地址

7、总结

|-----------------------------------------------------------------------------------------------------------|
| Qt远程连接数据库,注册,登录完成,运行前一定要创建出数据库,否则会报错,想了 解数据库怎么创建的,也可以去看一下我另一篇博客,最后,如果大家觉得有所帮助, 可以点一下赞,谢谢大家!永远相信美好的事情即将发生! |

Qt远程连接数据库,注册,登录完成!

相关推荐
李广坤1 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1773 天前
《从零搭建NestJS项目》
数据库·typescript
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1233 天前
matlab画图工具
开发语言·matlab
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
dustcell.3 天前
haproxy七层代理
java·开发语言·前端
norlan_jame3 天前
C-PHY与D-PHY差异
c语言·开发语言
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端