您现在的位置是:首页 >其他 >QT中连接并使用SQLite3数据库网站首页其他
QT中连接并使用SQLite3数据库
简介QT中连接并使用SQLite3数据库
目录
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(); //关闭数据库
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。