基于C++的QT连接数据库实现学生信息管理系统

文章目录:

一:效果演示

二:实现思路

三:代码实现 

mainwindow.ui

Student.pro

mainwindow.h

mainwindow.cpp

main.cpp


一:效果演示

效果图◕‿◕✌✌✌ 

 

 代码下载

二:实现思路

只是实现了插入数据操作,其他操作一样的在此基础上 

1.设计好界面、连接好数据库

2.创建数据库和QT链接QSqlDatabase sqldb

3..调用函数创建且打开数据库CreateDatabaseFunc:创建SQLLite数据库
	添加数据库驱动
	设置数据库名称
	打开此数据库是否成功

4.调用函数创建数据表CreateTableFunc
	创建sql语句
	执行sql语句
		执行查询操作QueryTableFunc
		存储结果集QSqlQueryModel sqlmodel

三:代码实现 

mainwindow.ui

 

Student.pro

QT       += core gui
QT +=sql

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RESOURCES += \
    images.qrc

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>


#include <QSqlDatabase>//连接和创建
#include <QSqlQuery>   //专用于DML数据库操作语言、DDL数据库定义语言
#include <QSqlQueryModel> //存储结果集
#include <QSqlError>
#include <QDebug>
#include <QMessageBox>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButtonSort_clicked();

    void on_pushButton_INSERT_clicked();

    void on_pushButton_DELETE_clicked();

    void on_pushButton_UPDATE_clicked();

    void on_pushButton_SEARCH_clicked();



private://自定义函数
    void CreateDatabaseFunc();  //创建SQLite数据库
    void CreateTableFunc();     //创建数据库表
    void QueryTableFunc();      //执行查询操作

    QSqlDatabase sqldb;         //创建数据库和QT链接
    QSqlQueryModel sqlmodel;    //存储结果集



private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    //调用函数创建且打开数据库
    CreateDatabaseFunc();
    //调用函数创建数据表
    CreateTableFunc();
}

MainWindow::~MainWindow()
{
    delete ui;
}


//创建SQLLite数据库
void MainWindow::CreateDatabaseFunc(){
    //1.添加数据库驱动
    sqldb = QSqlDatabase::addDatabase("QSQLITE");

    //2.设置数据库名称
    sqldb.setDatabaseName("studentmis.db");

    //3.打开此数据库是否成功
    if(sqldb.open()==true){
        QMessageBox::information(0,"正确","恭喜你,数据库打开成功!",QMessageBox::Ok);
    }else{
        QMessageBox::critical(0,"错误","数据库打开失败,请重新检查!",QMessageBox::Ok);
    }

}


//创建数据库表
void MainWindow::CreateTableFunc(){
    QSqlQuery createquery;

    //创建sql语句
    QString strsql=QString("create table student("
                             "id int primary key not null,"
                             "name text not null,"
                             "score real not null)"
                           );
    //执行sql语句
    if(createquery.exec(strsql)==false){
        QMessageBox::critical(0,"失败","数据表创建失败,请重新检查!",QMessageBox::Ok);
    }else{
        QMessageBox::information(0,"成功","恭喜你,数据表创建成功!",QMessageBox::Ok);
    }
}


//执行查询操作
void MainWindow::QueryTableFunc(){


}






//排序
void MainWindow::on_pushButtonSort_clicked()
{

}

//插入
void MainWindow::on_pushButton_INSERT_clicked()
{
    QSqlQuery sqlquery;


    int id=ui->lineEdit_ID->text().toInt();
    //学号
    if(id == 0){
        QMessageBox::critical(this,"失败","提示:输入错误,因为学生的学号不能为0!",QMessageBox::Ok);
        return ;
    }
    //姓名
    QString name=ui->lineEdit_NAME->text();
    if(name == ""){
        QMessageBox::critical(this,"失败","提示:输入错误,因为姓名不能为空!",QMessageBox::Ok);
        return ;
    }
    //分数
    double score=ui->lineEdit_SCORE->text().toDouble();
    if(score>100 || score<0){
        QMessageBox::critical(this,"失败","提示:输入错误,分数范围(0-100)!",QMessageBox::Ok);
        return ;
    }

    //注意student后面一个空格
    QString strs=QString("insert into student "
                         "values(%1,%2,%3)").arg(id).arg(name).arg(score);

    //执行sql语句
    if(sqlquery.exec(strs)==false){
        QMessageBox::critical(0,"失败","向数据表插入失败,请重新检查!",QMessageBox::Ok);
    }else{
        QMessageBox::information(0,"成功","恭喜你,向数据表插入成功!",QMessageBox::Ok);
    }
}

//删除
void MainWindow::on_pushButton_DELETE_clicked()
{

}

//更新
void MainWindow::on_pushButton_UPDATE_clicked()
{

}


void MainWindow::on_pushButton_SEARCH_clicked()
{

}

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

猜你喜欢

转载自blog.csdn.net/liu17234050/article/details/132426271