以下是使用 Qt 框架读写 SQLite 数据库的步骤,并附带代码示例:

  1. 安装 SQLite 驱动程序

首先,需要安装 Qt 的 SQLite 驱动程序。可以通过 Qt Maintenance Tool 或在线安装程序安装。

  1. 创建 SQLite 数据库

可以使用 SQLite Database Browser 或其他工具创建 SQLite 数据库。在本例中,我们创建一个名为 'test.db' 的数据库,其中包含名为 'student' 的表格。

  1. 创建 Qt 项目

创建一个新的 Qt 项目,并在项目文件中添加以下代码:

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建数据库连接
    QSqlDatabase db = QSqlDatabase::addDatabase('QSQLITE');
    db.setDatabaseName('test.db');

    // 打开数据库
    if (!db.open()) {
        qDebug() << 'Failed to connect to database.';
        return 1;
    }

    // 执行 SQL 查询
    QSqlQuery query;
    query.prepare('SELECT * FROM student');
    if (!query.exec()) {
        qDebug() << 'Failed to execute query.';
        return 1;
    }

    // 处理查询结果
    while (query.next()) {
        QString name = query.value(0).toString();
        int age = query.value(1).toInt();
        qDebug() << 'Name:' << name << 'Age:' << age;
    }

    // 关闭数据库连接
    db.close();

    return a.exec();
}
  1. 运行代码

运行代码,在控制台中将显示 'student' 表中的所有记录。

  1. 添加新记录

可以使用以下代码添加新记录:

// 插入新记录
QSqlQuery insertQuery;
insertQuery.prepare('INSERT INTO student (name, age) VALUES (:name, :age)');
insertQuery.bindValue(':name', 'Tom');
insertQuery.bindValue(':age', 20);
if (!insertQuery.exec()) {
    qDebug() << 'Failed to insert record.';
}
  1. 更新记录

可以使用以下代码更新记录:

// 更新记录
QSqlQuery updateQuery;
updateQuery.prepare('UPDATE student SET age = :age WHERE name = :name');
updateQuery.bindValue(':name', 'Tom');
updateQuery.bindValue(':age', 21);
if (!updateQuery.exec()) {
    qDebug() << 'Failed to update record.';
}
  1. 删除记录

可以使用以下代码删除记录:

// 删除记录
QSqlQuery deleteQuery;
deleteQuery.prepare('DELETE FROM student WHERE name = :name');
deleteQuery.bindValue(':name', 'Tom');
if (!deleteQuery.exec()) {
    qDebug() << 'Failed to delete record.';
}

这些是使用 Qt 框架读写 SQLite 数据库的步骤。您可以根据需要进行修改和扩展。

Qt SQLite 数据库操作教程:读写、添加、更新、删除

原文地址: https://www.cveoy.top/t/topic/nESG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录