日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

qt mysql 注册码_QT连接Oracle数据库并实现登录验证的操作步骤

發(fā)布時(shí)間:2024/9/15 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt mysql 注册码_QT连接Oracle数据库并实现登录验证的操作步骤 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目的:

本文實(shí)現(xiàn)QT登錄界面,輸入賬號(hào)和密碼后,系統(tǒng)連接Oracle數(shù)據(jù)進(jìn)行判斷賬號(hào)和密碼(MD5加密)是否和數(shù)據(jù)庫(kù)一致,如果一致則提示登錄成功。

開發(fā)環(huán)境:Windows10+QT5.14.2+Oracle11G R2

操作步驟:

1、打開QT軟件,創(chuàng)建一個(gè)新的Application項(xiàng)目

2、設(shè)計(jì)界面并修改代碼:

2.1修改項(xiàng)目配置文件,添加sql字符串表示要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。

2.2登錄界面LoginForm設(shè)計(jì)

2.3編寫登錄界面代碼

LoginForm.h代碼如下:

#ifndef LOGINFORM_H

#define LOGINFORM_H

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui { class LoginForm; }

QT_END_NAMESPACE

class LoginForm : public QMainWindow

{

Q_OBJECT

public:

LoginForm(QWidget *parent = nullptr);

~LoginForm();

void initsql(); //初始化數(shù)據(jù)庫(kù)

private slots:

void on_pushButton_clicked();

QString encrypt(const QString &str);//自定義加密函數(shù)

private:

Ui::LoginForm *ui;

QSqlDatabase db;

QSqlQuery *query;

};

#endif // LOGINFORM_H

#include "loginform.h"

#include "ui_loginform.h"

#include

#include

#include

#include

#include

LoginForm::LoginForm(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::LoginForm)

{

ui->setupUi(this);

initsql();//打開數(shù)據(jù)庫(kù)連接

}

LoginForm::~LoginForm()

{

delete ui;

}

//登錄驗(yàn)證賬號(hào)密碼是否正確

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()<

query=new QSqlQuery;

query->exec(str);

query->last();

int record=query->at()+1;

if(record==0){

QMessageBox::information(this,"提示","用戶或密碼不對(duì)",QMessageBox::Ok);

}

else{

QMessageBox::information(this,"提示","系統(tǒng)登錄成功",QMessageBox::Ok);

}

}

//MD5加密函數(shù)

QString LoginForm::encrypt(const QString &str)

{

//字符串MD5算法加密

QByteArray btArray;

btArray.append(str);//加入原始字符串

QCryptographicHash hash(QCryptographicHash::Md5); //Md5加密算法

hash.addData(btArray); //添加數(shù)據(jù)到加密哈希值

QByteArray resultArray =hash.result(); //返回最終的哈希值

QString md5 =resultArray.toHex();//轉(zhuǎn)換為16進(jìn)制字符串

return md5.toUpper();

}

//初始化打開數(shù)據(jù)庫(kù)連接

void LoginForm::initsql()

{

/*若輸出列表中出現(xiàn)QOCI8和QOCI,則表示驅(qū)動(dòng)加載成功*/

QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers)

qDebug() <

//數(shù)據(jù)庫(kù)連接

db = QSqlDatabase::addDatabase("QOCI");

db.setHostName("192.168.1.100");//數(shù)據(jù)庫(kù)服務(wù)器ip

db.setPort(1521);//數(shù)據(jù)庫(kù)端口號(hào)

db.setDatabaseName("orcl");//數(shù)據(jù)庫(kù)名稱

db.setUserName("dbUserName");//數(shù)據(jù)庫(kù)用戶名

db.setPassword("dbUserPassword");//數(shù)據(jù)庫(kù)密碼

db.open();

}

3、按F5開始調(diào)試運(yùn)行

4、代碼地址:

到此這篇關(guān)于QT連接Oracle數(shù)據(jù)庫(kù)并實(shí)現(xiàn)登錄驗(yàn)證的操作步驟的文章就介紹到這了,更多相關(guān)QT連接Oracle數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

總結(jié)

以上是生活随笔為你收集整理的qt mysql 注册码_QT连接Oracle数据库并实现登录验证的操作步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。