1.在.pro文件中引入sql
QT+=sql;
或者直接拼接,注意用空格隔开
QT+= core gui sql;
2.窗体头文件.h中加入数据库头文件
#include <QSqlDatabase>//连接数据库、创建数据库
#include <QSqlQuery>//执行数据库语句
3.在Qt中创建数据库
头文件.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QMenu>
#include <QToolBox>
#include <QDebug>
#include <QString>
#include <QSqlDatabase>//连接数据库、创建数据库
#include <QSqlQuery>//执行数据库语句
#include <QSqlQueryModel>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
private:
Ui::Widget *ui;
QSqlDatabase db;
QSqlQuery *query;
};
#endif // WIDGET_H
.cpp文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QSQLITE");//数据库类型
db.setDatabaseName("test.db");
db.open();//创建/打开,数据库
query = new QSqlQuery();
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_enrollbnt_clicked()
{
QString usrname = ui->usrnamelineEdit->text();
QString password = ui->passwordlineEdit->text();
QString sql = "insert into userinfo(usrname,password) values('"+usrname+"','"+password+"')";
query->exec(sql);
}
4.在数据库中查询内容
[按索引/名字查询]
.cpp文件
db = QSqlDatabase::addDatabase("QSQLITE");//数据库类型
db.setDatabaseName("test.db");
db.open();//创建/打开,数据库
query = new QSqlQuery();
query->exec("select * from Info where Name = 'Guns'");
while(query->next())
{
qDebug() << query->value("ID").toDouble()
<< query->value("Name").toString()
<< query->value(2).toDouble();
}