自学内容网 自学内容网

10.11 Qt数据库

成绩管理系统

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    if(!db.contains("stu.db"))
    {

        db=QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName("stu.db");
    }

    if(!db.open())
    {
        QMessageBox::information(this,"提示","数据库打开失败!");
        return;
    }

    QSqlQuery query;
    QString sql="create table if not exists STU(id int,name char,sex char,grade double);";

    if(!query.exec(sql))
    {
        QMessageBox::information(this,"提示","数据库创建失败!");
        return;
    }
}

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


void Widget::on_addbtn_clicked()
{
    int numb=ui->numbEdit->text().toUInt();
    QString name=ui->nameEdit->text();
    QString sex=ui->sexEdit->text();
    double grade=ui->gradeEdit->text().toDouble();

    QString sql=QString("insert into STU(id,name,sex,grade) values(%1,'%2','%3',%4);").arg(numb).arg(name).arg(sex).arg(grade);

    QSqlQuery query;
    if(!query.exec(sql))
    {
        QMessageBox::information(this,"提示","添加信息失败!");
        return;
    }
}

void Widget::on_showbtn_clicked()
{
    ui->tableWidget->clearContents();
    ui->tableWidget->setRowCount(0);
    QSqlQuery query;
    QString sql ="select * from STU;";

    if(!query.exec(sql))
    {
        QMessageBox::information(this,"提示","展示失败!");
        return;
    }


    int i=0;
    while (query.next())
    {
        ui->tableWidget->insertRow(i);
        QSqlRecord record=query.record();
        for(int j=0;j<record.count();j++)
        {
            ui->tableWidget->setItem(i,j,new QTableWidgetItem(record.value(j).toString()));
        }
        ui->tableWidget->setVerticalHeaderItem(i, new QTableWidgetItem(QString::number(i + 1)));
        i++;
    }
}

void Widget::on_sortbtn_clicked()
{
    QString sql = "SELECT * FROM STU ORDER BY grade ASC;";  // 按成绩升序排序

    QSqlQuery query;
    if (!query.exec(sql))
    {
        QMessageBox::information(this, "提示", "排序失败!");
        return;
    }

    // 清空表格
    ui->tableWidget->clearContents();
    ui->tableWidget->setRowCount(0);

    int i = 0;
    while (query.next())
    {
        ui->tableWidget->insertRow(i);  // 动态增加行
        QSqlRecord record = query.record();
        for (int j = 0; j < record.count(); j++)
        {
            ui->tableWidget->setItem(i, j, new QTableWidgetItem(record.value(j).toString()));
        }
        i++;
    }
}


void Widget::on_deletebtn_clicked()
{
    int numb = ui->numbEdit->text().toUInt();  // 根据学生的ID删除

    QString sql = QString("DELETE FROM STU WHERE id = %1;").arg(numb);

    QSqlQuery query;
    if (!query.exec(sql))
    {
        QMessageBox::information(this, "提示", "删除信息失败!");
        return;
    }

}


原文地址:https://blog.csdn.net/m0_68908707/article/details/142863230

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!