武汉做网站价格/网站开发培训
Qt远程连接数据库
- 1、设计登录界面
- 2、设计注册界面
- 3、注册按钮
- 3.1添加头文件
- 3.2连接注册按钮信号与槽
- 3.3注册按钮实现
- 3.4实现点击注册按钮
- 4、登录按钮
- 4.1连接登录按钮信号与槽
- 4.2登录按钮实现
- 5、数据库连接
- 5.1创建数据库对象
- 5.2连接数据库
- 6、代码地址
- 7、总结
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)"); // 查询语句SQLquery.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远程连接数据库,注册,登录完成,运行前一定要创建出数据库,否则会报错,想了 解数据库怎么创建的,也可以去看一下我另一篇博客,最后,如果大家觉得有所帮助, 可以点一下赞,谢谢大家!永远相信美好的事情即将发生! |