QSQLITE

QSQLITE使用方法

QSqlDatabase类提供一个通过数据库连接访问数据库的接口。一个QSqlDatabase的实例代表了一个数据库连接

用静态方法 addDatabase() 创建一个数据库连接(也就是QSqlDatabase的实例),指定驱动或者驱动种类(也就是你要访问什么类型数据库)以及连接名称。一个连接通过它的连接名称识别,注意,不是它连接的数据库名称。你可以有多个连接连到同一个数据库。QSqlDatabase还支持默认连接概念,没有连接名称的连接就是默认连接。要创建默认连接,在调用addDatabase()方法时不传递连接名称参数(connectionName)即可。以后,当你调用任何带连接名称参数的静态成员函数时,如果你不传递连接名称参数,就会使用默认连接

在上面定义的连接将成为默认连接,因为我们没有传递连接名称参数(connectionName)给 addDatabase() 。以后,你可以不用提供连接名称参数(connectionName)直接调用 database() 方法来获得这个默认连接:
QSqlDatabase db = QSqlDatabase::database();

如果创建多重数据库连接,调用 addDatabase() 时,要为每个连接指定独一无二的名字。调用 database() 方法并传递连接名称来获取该连接。通过调用带有连接名称参数的 removeDatabase() 方法来移除一个连接。当你试图移除一个已经被其他 QSqlDatabase 对象引用的连接时 QSqlDatabase 将会输出警告。调用contains() 方法来查看给出的连接名称是否在连接列表中

下面附上代码,Qt中使用QSQLITE同时打开多个数据库

    QSqlDatabase DbConn;
    //添加数据库驱动,并指定连接名称MTPSQLLITE3
    DbConn = QSqlDatabase::addDatabase("QSQLITE", "MTPSQLLITE3");
    //创建数据库(不存在新建,存在不新建)
    DbConn.setDatabaseName(path + "/debug/MTPSQLLITE3.db");
    //打开数据库
    if (!DbConn.open()) {
        qDebug() << "open DB failed";
         exit(0);
    }

    QSqlDatabase DbConnNew;
    //添加数据库驱动,并指定连接名称MTPSQLLITE3NEW
    DbConnNew = QSqlDatabase::addDatabase("QSQLITE", "MTPSQLLITE3NEW");
    //新建数据库
    DbConnNew.setDatabaseName(path + "/debug/MTPSQLLITENEW.db");
    //打开
    if (!DbConnNew.open()) {
        qDebug() << "open DB failed";
         exit(0);
    }
void radioForm::GetDataFromDB()
{
//通过连接名称获取指定的数据库连接
    QSqlDatabase dataBase = QSqlDatabase::database("MTPSQLLITE3");
    QSqlDatabase dataBaseNew = QSqlDatabase::database("MTPSQLLITE3NEW");

//对MTPSQLLITE3.db数据库进行访问
    QSqlQuery sqlQuery(dataBase);
    QString selectAllSql = "select * from BaseArms";
    sqlQuery.prepare(selectAllSql);

    if(!sqlQuery.exec())
    {
        qDebug() << "radioForm sqlQuery error";
        //qDebug()<<sqlQuery.lastError();
    }
    else
    {
        while(sqlQuery.next())
        {
            QString id = sqlQuery.value(0).toString();
            QString name = sqlQuery.value(1).toString();
            QString age = sqlQuery.value(2).toString();

            qDebug()<<QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);
        }
    }

    /*对MTPSQLLITE3New.db数据库进行访问*/
    QSqlQuery sqlQueryNew(dataBaseNew);
    QString selectAllSqlNew = "select * from Commander";
    sqlQueryNew.prepare(selectAllSqlNew);

    if(!sqlQueryNew.exec())
    {
        qDebug() << "radioForm sqlQuery error";
        //qDebug()<<sqlQuery.lastError();
    }
    else
    {
        while(sqlQueryNew.next())
        {
            QString id = sqlQueryNew.value(0).toString();
            QString name = sqlQueryNew.value(1).toString();
            QString age = sqlQueryNew.value(2).toString();

            qDebug()<<QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);
        }
    }
}
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLite 是一种轻量级的关系型数据库系统,它被广泛应用于各种应用程序中。QSQLiteQt 框架中的一个模块,它提供了与 SQLite 数据库交互的功能。使用 QSQLite,你可以在 Qt 应用程序中创建、访问和操作 SQLite 数据库。 要在 Qt 中使用 QSQLite,首先需要在项目中引入 QtSql 模块。然后,你可以通过创建一个 QSqlDatabase 对象来连接SQLite 数据库。下面是一个简单的示例代码: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 连接SQLite 数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("path/to/database/file.db"); // 打开数据库 if (db.open()) { qDebug() << "Connected to the database!"; // 执行 SQL 查询 QSqlQuery query; if (query.exec("SELECT * FROM table")) { while (query.next()) { QString name = query.value(0).toString(); int age = query.value(1).toInt(); qDebug() << "Name:" << name << ", Age:" << age; } } else { qDebug() << "Query failed!"; } // 关闭数据库连接 db.close(); } else { qDebug() << "Failed to connect to the database!"; } return a.exec(); } ``` 在上面的示例中,我们使用 `QSqlDatabase` 类来连接SQLite 数据库,并使用 `QSqlQuery` 类执行 SQL 查询。你可以根据自己的需求执行各种 SQL 操作,例如插入、更新和删除数据等。 这只是一个简单的示例,你可以根据你的具体需求进行更复杂的操作。希望这能帮到你!如果有任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值