Qt连接sqlite数据库步骤
①添加数据库模块
QT += sql
②添加头文件
#include<QSqlDatabase>
#include<QSqlQuery> //sql查询语句
③建立连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
④关联数据库
注意:关联的数据库若不存在则会自动创建
db.setDatabaseName("关联数据库的路径");
⑤打开数据库
if(!db.open())
qDebug()<<"database open failed";
⑥执行sql语句,操作数据库
QSqlQuery* query = new QSqlQuery;
query->exec("sql语句");
如果不太清楚sql语句的可以翻看我SQL常用语句大全这篇文章,详细讲解了常用的sql语句SQL常用语句大全https://blog.csdn.net/m0_71741835/article/details/127624612
可能会遇到的错误
意思就是存在重复的连接名,旧的连接已删除,数据库所有查询停止工作
解决办法
将第③步代码修改为
if(QSqlDatabase::contains("qt_sql_default_connection"))
db = QSqlDatabase::database("qt_sql_default_connection");
else
db = QSqlDatabase::addDatabase("QSQLITE");
解释
一般情况下,按照上面的步骤操作,就可以成功连接sqlite数据库了
但其实在第③步骤建立数据库的连接时,我们应该先判断是否存在默认连接,如果存在的话,返回这个默认连接,如果不存在才建立新的连接,添加数据库
上面代码中if语句就是在判断默认连接是否存在,qt_sql_default_connection这个就是Qt的默认连接名称,如果if判断这个默认连接存在,则返回这个默认连接,否则才建立新的连接,设置驱动,添加数据库,QSQLITE是sqlite数据库对应的驱动名
注意:addDatabase()的第二个参数被省略了,第二个参数就是数据库的连接名,默认的话就是Qt的默认连接名称qt_sql_default_connection,如果需要同时操作多个数据库,这个参数就不能省略了,就必须自定义连接名了,然后在定义QSqlQuery对象时要指定连接名来指定操作的是哪个数据库
db = QSqlDatabase::addDatabase("QSQLITE","connection_1");
这个时候,如果在另一个地方需要判断connection_1连接是否存在,就应该使用
if(QSqlDatabase::contains("connection_1"))
...
这篇文章对你有帮助的话~就点个赞吧~
点赞收藏关注就是对我最大的支持~
谢谢你们~
版权声明:本文为m0_71741835原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。