QT 访问sqlite数据库
1、sqlite数据库安装
首先,通过sqlite3命令查看 sqlite数据库是否已经安装,若没有安装,则通过 sudo apt install 指令进行安装。
2、准备数据(并命令行查看)
3、修改.pro文件
在.pro文件中,增加如下引用:
QT += core gui printsupport sql
4、在.cpp 文件中,增加示例查询代码
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <QMessageBox>
#include <QVariant>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
void QueryData();
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QueryData();
return a.exec();
}
void QueryData()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
//设置数据库
db.setDatabaseName("/home/limg/Projects/sledb.db");
//打印Qt支持的数据库引擎
qDebug() << QSqlDatabase::drivers();
//打开数据库
if(!db.open())
{
//如果数据库打开失败
QMessageBox::warning(this,"错误", db.lastError().text());
return;
}
else
{
QMessageBox::information(this, "成功", "成功");
// return;
}
QSqlQuery query;
query.exec("select * from PARAM_SLE_ENV;");
QString result="";
//遍历取得的所有结果
while(query.next())
{
result+=query.value("ParamID").toString()+' ';
result+=query.value("ParamValue").toString()+' ';
//result+=query.value("age").toString()+' ';
//result+=query.value("score").toString()+' ';
result+='\n';
}
if(result.isEmpty())
{
QMessageBox::warning(this,"查询结果","找不到结果");
}
else
{
QMessageBox::information(this,"查询结果",result);
}
}