脚本宝典收集整理的这篇文章主要介绍了QT连接Oracle数据库并实现登录验证的操作步骤,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实现QT登录界面,输入账号和密码后,系统连接Oracle数据进行判断账号和密码(MD5加密)是否和数据库一致,如果一致则提示登录成功。
开发环境:Windows10+QT5.14.2+oracle11G R2
1、打开QT软件,创建一个新的Application项目
2、设计界面并修改代码:
2.1修改项目配置文件,添加SQL字符串表示要对数据库进行操作。
2.2登录界面LoginForm设计
2.3编写登录界面代码
LOGinForm.h代码如下:
#ifndef LOGINFORM_H #define LOGINFORM_H #include <QMainWindow> #include <QSqlDatabase> #include <QSqlQuery> QT_BEGIN_namesPACE namespace Ui { class LoginForm; } QT_END_NAMESPACE class LoginForm : public QMainWindow { Q_OBJECT public: LoginForm(QWidget *parent = nullptr); ~LoginForm(); void inITsql(); //初始化数据库 PRivate slots: void on_pushButton_clicked(); QString encrypt(const QString &str);//自定义加密函数 private: Ui::LoginForm *ui; QSqlDatabase db; QSqlQuery *query; }; #endif // LOGINFORM_H
#include "loginform.h" #include "ui_loginform.h" #include <QStackedWidget> #include <QMessageBox> #include <QDebug> #include <QWidget> #include <QCryptographicHash> LoginForm::LoginForm(QWidget *parent) : QMainWindow(parent) , ui(new Ui::LoginForm) { ui->SETUPUi(this); initsql();//打开数据库连接 } LoginForm::~LoginForm() { delete ui; } //登录验证账号密码是否正确 void LoginForm::on_pushButton_clicked() { //获得用户和密码 QString name=ui->lineEdit->text(); QString password=ui->lineEdit_2->text(); QByteArray ba = password.toUtf8(); QByteArray md5Password = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5).toHex(); QString str=QString("select * From USER where UserName='%1' and Password='%2'").arg(name).arg(encrypt(password)); qDebug()<<str; query=new QSqlQuery; query->exec(str); query->last(); int record=query->at()+1; if(record==0){ QMessageBox::information(this,"提示","用户或密码不对",QMessageBox::Ok); } else{ QMessageBox::information(this,"提示","系统登录成功",QMessageBox::Ok); } } //MD5加密函数 QString LoginForm::encrypt(const QString &str) { //字符串MD5算法加密 QByteArray BTArray; btArray.apPEnd(str);//加入原始字符串 QCryptographicHash hash(QCryptographicHash::Md5); //Md5加密算法 hash.addData(btArray); //添加数据到加密哈希值 QByteArray resultArray =hash.result(); //返回最终的哈希值 QString md5 =resultArray.toHex();//转换为16进制字符串 return md5.toUpper(); } //初始化打开数据库连接 void LoginForm::initsql() { /*若输出列表中出现Qoci8和QOCI,则表示驱动加载成功*/ QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() <<"\t" << driver; //数据库连接 db = QSqlDatabase::addDatabase("QOCI"); db.setHostName("192.168.1.100");//数据库服务器ip db.setPort(1521);//数据库端口号 db.setDatabaseName("orcl");//数据库名称 db.setUserName("dbUserName");//数据库用户名 db.setPassword("dbUserPassword");//数据库密码 db.open(); }
3、按F5开始调试运行
4、代码地址:
https://codechina.csdn.net/xqf222/qtlogin/
到此这篇关于QT连接Oracle数据库并实现登录验证的操作步骤的文章就介绍到这了,更多相关QT连接Oracle数据库内容请搜索脚本宝典以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本宝典!
以上是脚本宝典为你收集整理的QT连接Oracle数据库并实现登录验证的操作步骤全部内容,希望文章能够帮你解决QT连接Oracle数据库并实现登录验证的操作步骤所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。