Qt :sqlite数据库相关操作

本文详细介绍如何在Qt环境下使用SQLite数据库,包括配置环境、连接数据库、执行CRUD操作等关键步骤,为开发者提供实用代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关编译环境:win10(64bit) Qt5.12.2 sqlite3 Qt Creator 4.8.2

1.在.pro文件中,QT += 后添加sql,如下:
在这里插入图片描述
2.打开/连接数据库

所需头文件:

#include <QSqlError>
#include <QSqlDatabase>
 QSqlDatabase db;
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("LMIS.db");

    if(!db.open()){
        qCritical("Can't open database: %s(%s)",
                  db.lastError().text().toLocal8Bit().data(),
                  qt_error_string().toLocal8Bit().data());

        return false;
    }
    return true;

3.关闭数据库

QSqlDatabase::database().close();

4.修改/更新数据库信息

所需头文件:

#include <QSqlQuery>
#include <QSqlRecord>
bool ExecSQL::modifyIndentInfo(const QString condition, const QString value, const QString DDBH)
{
    g_indentInfos.clear();
    QSqlQuery query;

    QString queryString = QString("update indent set %1 = '%2' "
                                  "where DDBH = '%3'").arg(condition).arg(value).arg(DDBH);
    qDebug() << queryString;

    return query.exec(queryString);
}

5.插入数据

bool ExecSQL::insertIndentInfo(Indent ind)
{
    QSqlQuery query;

    QString queryString = QString("insert into indent values"
                                  "('%1', '%2', '%3', '%4', '%5')")
            .arg(ind.getDDBH()).arg(ind.getYHBH()).arg(ind.getSHDZ()).arg(ind.getSHRXM()).arg(ind.getSHRLXFS());
    qDebug() << queryString;

    return query.exec(queryString);
}

6.删除数据

bool ExecSQL::deleteIndentInfo(const QString DDBH)
{
    QSqlQuery query;

    QString queryString = QString("delete from student where DDBH = '%1'").arg(DDBH);
    qDebug() << queryString;

    return query.exec(queryString);
}

7.查询数据

ListIndent ExecSQL::selectIndentInfo(QString condition, QString value)
{
    ListIndent list;

    QSqlQuery query;
    QString queryString = QString("select * from indent "
                                  "where %1 = '%2'").arg(condition).arg(value);

    qDebug() << queryString;
    if(query.exec(queryString))
    {
        int DDBH_DDBHx = query.record().indexOf("DDBH");
        int YHBH_DDBHx = query.record().indexOf("YHBH");
        int SHRXM_DDBHx = query.record().indexOf("SHRXM");
        int SHDZ_DDBHx = query.record().indexOf("SHDZ");
        int SHRLXFS_DDBHx = query.record().indexOf("SHRLXFS");

        while(query.next())
        {
            QString DDBH = query.value(DDBH_DDBHx).toString();
            QString YHBH = query.value(YHBH_DDBHx).toString();
            QString SHRXM = query.value(SHRXM_DDBHx).toString();
            QString SHDZ = query.value(SHDZ_DDBHx).toString();
            QString SHRLXFS = query.value(SHRLXFS_DDBHx).toString();

            Indent ind(DDBH, YHBH, SHRXM, SHDZ, SHRLXFS);
            list.append(ind);
        }
    }
    return list;
}

注:此篇代码以本人管理系统项目代码为例,格式相同,使用时修改变量名函数名即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不秃头的程序猿Gabriel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值