溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用QT對Oracle數據庫進行連接

發布時間:2021-01-29 14:59:09 來源:億速云 閱讀:739 作者:Leah 欄目:開發技術

如何使用QT對Oracle數據庫進行連接?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

操作步驟:

1、打開QT軟件,創建一個新的Application項目

如何使用QT對Oracle數據庫進行連接

如何使用QT對Oracle數據庫進行連接

如何使用QT對Oracle數據庫進行連接

如何使用QT對Oracle數據庫進行連接

如何使用QT對Oracle數據庫進行連接

如何使用QT對Oracle數據庫進行連接

如何使用QT對Oracle數據庫進行連接

2、設計界面并修改代碼:

2.1修改項目配置文件,添加sql字符串表示要對數據庫進行操作。

如何使用QT對Oracle數據庫進行連接

2.2登錄界面LoginForm設計

如何使用QT對Oracle數據庫進行連接

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開始調試運行

如何使用QT對Oracle數據庫進行連接

關于如何使用QT對Oracle數據庫進行連接問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女