Qt使用Sqlite

18 篇文章 2 订阅

在Qt的sql中自带了sqlite3以及之前版本的sqlite,默认是sqlite3了。

首先随意建一个Qt程序,在.pro文件中加入sql模块:

执行qmake

接下来就可以使用sqlite了,看代码示例:

#include <QDebug>
#include <QSqlDatabase>
#include <QSqlDriver>
#include <QSqlQuery>
#include <QDateTime>
#include <QSqlError>
#include <QSqlRecord>
#include <QSqlResult>

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

    QString error_tip  = "%1:[%2]%3";
    QString create_sql = "CREATE TABLE IF NOT EXISTS data_list(id INT PRIMARY KEY, name VARCHAR(255), date VARCHAR(255));";
    QString insert_sql = "INSERT INTO data_list(id, name, date) VALUES(%1,'%2','%3');";
    QString select_sql = "SELECT * FROM data_list;";

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./data_station.db");
    if(!db.open())
    {
        qDebug() << error_tip.arg("open data base 'data_station' failed").arg(db.lastError().type()).arg(db.lastError().text());
        return 0;
    }

    QSqlQuery db_operator(db);

    //* 如果不存在表格则创建
    if(!db_operator.exec(create_sql))
    {
        qDebug() << error_tip.arg("create table 'data_list' failed").arg(db_operator.lastError().type()).arg(db_operator.lastError().text());
    }

    //* 插入100条示例数据
    for(int i = 0; i < 100; i++)
    {
        if(!db_operator.exec(insert_sql.arg(i).arg(QString("data %1").arg(i)).arg(QDateTime::currentDateTime().toString())))
        {
            qDebug() << error_tip.arg("insert failed").arg(db_operator.lastError().type()).arg(db_operator.lastError().text());
        }
    }

    db.commit();

    //* 查询所有数据
    if(!db_operator.exec(select_sql))
    {
        qDebug() << error_tip.arg("select failed").arg(db_operator.lastError().type()).arg(db_operator.lastError().text());
    }
    else
    {
        qDebug() << select_sql;
        int count = 0;
        while(db_operator.next())
        {
            count ++;
            QString res = "%1 '%2' %3";
            qDebug() << res.arg(db_operator.value(0).toString()).arg(db_operator.value(1).toString()).arg(db_operator.value(2).toString());
        }

        qDebug() << QString("[count:%1]").arg(count);
    }

    //return 0;
    return a.exec();
}

第一次运行的时候会在运行目录自动创建数据库文件:data_station.db 并创建表格data_list并尝试插入100行数据。

运行结果:

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!Qt 是一个跨平台的应用程序开发框架,它提供了丰富的工具和组件来简化应用程序的开发过程。使用 Qt 进行 SQLite 数据库的操作非常简单。 首先,确保你的 Qt 项目中已经包含了 SQLite 驱动程序。在项目文件(.pro)中添加以下行: ``` QT += sql ``` 接下来,你需要创建一个数据库连接。可以使用 `QSqlDatabase` 类来实现。以下是一个示例: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("path/to/your/database.db"); if (!db.open()) { qDebug() << "Failed to connect to database!"; return -1; } // 这里可以进行数据库操作 db.close(); return a.exec(); } ``` 以上代码中,我们创建了一个名为 `db` 的 `QSqlDatabase` 对象,并设置了数据库的驱动程序为 SQLite,并指定了数据库文件的路径。然后我们可以使用 `open()` 方法打开数据库连接,如果连接成功则返回 `true`,否则会返回 `false`。 接下来,你就可以在打开的数据库连接上执行 SQL 查询和操作了。你可以使用 `QSqlQuery` 类来执行查询,并获取结果。以下是一个简单的示例: ```cpp #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("path/to/your/database.db"); if (!db.open()) { qDebug() << "Failed to connect to database!"; return -1; } QSqlQuery query; query.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)"); // 插入数据 query.prepare("INSERT INTO users (name) VALUES (:name)"); query.bindValue(":name", "John Doe"); query.exec(); // 查询数据 query.exec("SELECT * FROM users"); while (query.next()) { int id = query.value(0).toInt(); QString name = query.value(1).toString(); qDebug() << "ID:" << id << "Name:" << name; } db.close(); return a.exec(); } ``` 以上代码中,我们首先创建了一个名为 `users` 的表,然后插入了一条数据,并执行了一个简单的查询,将结果打印出来。 这只是一个简单的示例,你可以根据自己的需求进行更复杂的数据库操作。希望对你有所帮助!如果有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值