主要通过QSqlDatabase类进行连接。相关函数:
1)获得一个数据库连接对象
// 获得一个数据库连接对象
// 参数为数据库类型,详见本章第一节表格(区分大小写)
// 返回值为连接对象
#include <QSqlDatabase>
QSqlDatabase QSqlDatabase:: addDatabase(const QString & type)[static]
2)设置数据库名称
// 设置数据库名称
// 参数因不同的数据库表示不同的涵义。对于SQLite,此函数表示数据库文件名。此文件会在项目中构建目录中生成
void QSqlDatabase:: setDatabaseName(const QString & name)
3)打开数据库连接
// 打开数据库连接
// 返回值为连接打开的结果,如果打开失败,可以通过lastError函数获取错误信息
bool QSqlDatabase:: open()
4)返回上一次的错误信息封装类
错误信息类为QSqlError
// 返回上一次的错误信息封装类
#include <QSqlError>
QSqlError QSqlDatabase:: lastError() const
5)从QSqlError对象中提取错误信息文本
// 从QSqlError对象中提取错误信息文本
#include <QSqlError>
QString QSqlError:: text() const
6)返回数据库连接的打开状态
// 返回数据库连接的打开状态
bool QSqlDatabase:: isOpen() const
7)关闭数据库连接
// 关闭数据库连接
void QSqlDatabase:: close()
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
//创建按钮组
group = new QButtonGroup(this);
//添加按钮对象
group->addButton(ui->pushButtonInsert,1);
group->addButton(ui->pushButtonDelete,2);
group->addButton(ui->pushButtonUpdate,3);
group->addButton(ui->pushButtonSelect,4);
//按钮组连接
connect(group,SIGNAL(buttonClicked(int)),this,SLOT(btnClickedSlots(int)));
connectD2B();
}
Dialog::~Dialog()
{
//检查数据库状态
if(db.isOpen())
{
//关闭数据库连接
db.close();
}
delete ui;
}
//连接数据库
void Dialog::connectD2B()
{
//获取数据库连接对象
db = QSqlDatabase::addDatabase("QSQLITE");
//设置数据库名称
db.setDatabaseName("book_management.db");
//打开数据库连接
bool ret = db.open();
if(ret == true)
{
qDebug()<<"打开成功";
}
else
{
qDebug()<<"打开失败";
//返回最近错误信息封装类
QSqlError errorInfo = db.lastError();
//从错误信息类提取错误信息
QString text = errorInfo.text();
//弹窗显示错误信息
QMessageBox::critical(this,"错误",text);
}
}
void Dialog::btnClickedSlots(int id)
{
if(id == 1)
{
qDebug()<<"增加";
}
else if(id == 2)
{
qDebug()<<"删除";
}
else if(id == 3)
{
qDebug()<<"修改";
}
else if(id == 4)
{
qDebug()<<"查询";
}
else
{
qDebug()<<"错误";
}
}