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

发布于:2025-04-03 ⋅ 阅读:(40) ⋅ 点赞:(0)

1、设计登录界面

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

在这里插入图片描述

2、设计注册界面

在这里插入图片描述
在这里插入图片描述

3、注册按钮

3.1添加头文件

#include "clientregister.h"

3.2连接注册按钮信号与槽

在这里插入图片描述

private slots:

    void on_registerPushButton_clicked();          //注册按钮

3.3注册按钮实现

//注册按钮
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

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登录按钮实现

//登录按钮
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创建数据库对象

QSqlDatabase db;                               //创建数据库

5.2连接数据库

       //选择数据库
       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远程连接数据库,注册,登录完成!