Qt sqllist数据库与tableview的连用


前言

Sqlite 数据库作为 Qt 项目开发中经常使用的一个轻量级的数据库。Qt5 以上版本可以直接使用(Qt自带驱动),是一个轻量级的数据库

一、导入数据库模块

QT       += sql

二、链接数据库并新建

代码如下:

db=QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("x.db");
    bool ok=db.open();
    if(ok)
        QMessageBox::information(this,"Information","open sucessfully");
    else
        QMessageBox::information(this,"Information","open fail");
    QSqlQuery query;
    query_OK= query.exec("create table x(编号 vchar primary key, 时间 vchar,状态 vchar ,数值 vchar)");
    if(query_OK)
    {
        qDebug()<< "success!";
    }
    else
    {
        qDebug()<< "fail!"  << db.lastError();

    }

2.初始化1000组数据

代码如下:

for(int i = 0; i <= 1000; i++)
    {

        QString insert_buf;
        QSqlQuery query;
        QString zt = "ok";
        QString sz = "7";
        QString currentDateTimeString = currentDateTime.toString("yyyy-MM-dd hh:mm:ss");
        insert_buf=QObject::tr("insert into Gl values('%1','%2','%3','%4')").arg( QString::number(i),currentDateTimeString,zt,sz);
        query.exec(insert_buf);
    }

3.按时间区间筛选数据并显示

QString startDateTime = ui->lineEdit_6->text(); // 开始时间
    QString endDateTime = ui->lineEdit_7->text(); // 结束时间
    QSqlQuery query;
    if (query.exec("SELECT * FROM Gl WHERE 时间 BETWEEN '" + startDateTime + "' AND '" + endDateTime + "'")) {
        // 查询成功
        QSqlQueryModel *model = new QSqlQueryModel;
        model->setQuery(query);
        // 将查询结果设置给 QTableView 显示
        ui->tableView->setModel(model);
    } else {
        // 查询失败
        qDebug() << "查询失败:" << query.lastError().text();
    }

4.手动添加数据

 bh=ui->lineEdit->text();
    sj=ui->lineEdit_2->text();
    zt=ui->lineEdit_3->text();
    sz=ui->lineEdit_4->text();

    if(bh.isEmpty() || bh.isEmpty() || bh.isEmpty() || sz.isEmpty() )
    {
        QMessageBox::warning(this,"Incomplete information","error");
        return;
    }
    QString ibuf;
    QSqlQuery query;
    ibuf=QObject::tr("insert into Gl values('%1','%2','%3','%4')").arg(bh,sj,zt,sz);
    query.exec(insert_buf);
    

运行结果

效果

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值