QT中连接并使用SQLite3数据库

目录

1.在项目中加入数据库模块

 2.添加数据库有关的头文件

3.连接并打开数据库

4.数据库操作,查询表中的数据

1.在项目中加入数据库模块

在QT工程的.pro文件中加入sql。

 2.添加数据库有关的头文件

#include <QSqlDatabase>    // Qt 框架中用于连接数据库的类
#include <QSqlQuery>       //Qt 框架中用于处理 SQL 语句的类是一个查询执行器,它可以接受 SQL 查询语句并返回查询结果。

3.连接并打开数据库

QSqlDatabase db = QSqlDatabase :: addDatabase("QSQLITE");    //创建数据库连接
db.setDatabaseName("class.db");    //设置连接的数据库的名称
db.open();                    //打开数据库
if (!db.isOpen())
{
    qDebug() << "数据库连接失败:" ;
}

第一次打开数据库后,如果后续还在别的地方用到数据库,此时可以不用重新连接。先检查项目是否连接了数据库,如果没有就创建连接,如果连接过了就不用重新连接。检测代码如下:

QSqlDatabase db;
    if(QSqlDatabase::contains("qt_sql_default_connection"))
      db = QSqlDatabase::database("qt_sql_default_connection");
    else
      db = QSqlDatabase::addDatabase("QSQLITE");

4.数据库操作,查询表中的数据

查找数据库中名叫seattab的表。

这段代码使用了 QSqlQuery 类来查询数据库,并使用 while 循环来遍历查询结果。

在每个循环中,query.next() 方法会返回 true,表示当前条记录已被读取。然后,我们可以使用 query.value("accont") 或者query.value(0) 方法来获取表中指定列的值。

在这里,我们使用"account"、"name"和"seatnum"来指定要获取的列名。toInt() 方法将返回指定列的值转换为整数类型,toString() 方法将返回指定列的值转换为字符串类型。

QString tableName = "seattab";
QSqlQuery query;
query.exec(QString("select * from %1").arg(tableName));
while(query.next())
    {
        int accounts = query.value("account").toInt();
        QString names = query.value("name").toString();
        QString seatnums = query.value("seatnum").toString();

        //或者使用列数来获取表中的值
        int accounts = query.value(0).toInt();
        QString names = query.value(1).toString();
        QString seatnums = query.value(2).toString();

        qDebug()<<accounts;
        qDebug()<<names;
        qDebug()<<seatnums;
    }   
db.close();    //关闭数据库

猜你喜欢

转载自blog.csdn.net/weixin_55735677/article/details/130198852