目录
要求
支持某个字母或中文的模糊查询
示例代码片段
dialog.pro
加上连接数据库语句即可
QT += core gui sql
dialog.h
dialog类头文件定义
#include <QDialog>
// 按钮组类
#include <QButtonGroup>
// 数据库连接类
#include <QSqlDatabase>
// 调试类
#include <QDebug>
// 数据库错误信息类
#include <QSqlError>
// 弹窗信息类
#include <QMessageBox>
// 数据库操作类
#include <QSqlQuery>
dialog类头文件私有成员
private:
Ui::Dialog *ui;
// 数据库连接对象
QSqlDatabase db;
// 连接数据库
void connect2DB();
// 模糊查询支持
void selectLike();
dialog类头文件私有函数函数
// 按钮组点击
void btnClickedSlot();
dialog.cpp
dialog类源文件函数集
继承
ui->setupUi(this);
connect2DB();
connect(ui->pushButton_Select,SIGNAL(clicked()),this,SLOT(btnClickedSlot()));
连接数据库
// 获取数据库连接对象
db = QSqlDatabase::addDatabase("QSQLITE");
// 设置SQLite数据库文件名称:db文件在当前计算机的路径
db.setDatabaseName("C:/????//????/..");
// 打开数据库连接
if(db.open())
{
qDebug() << "数据库连接成功";
}else
{
// 获取错误信息类对象
QSqlError info = info.text();
// 提取错误信息文本内容
QString text = info.text();
// 弹窗
QMessageBox::critical(this,"数据库连接错误",text);
}
模糊查询支持
// model不输入就不执行后面的语句
QString model = ui->lineEdit->text();
qDebug() << model;
if(model == "")
{
// 弹窗
QMessageBox::warning(this,"提示","请输入单词!");
return;
}
// 预处理的SQL语句
QString sql = "SELECT * FROM englishwords WHERE word LIKE ?";
// 预处理
QSqlQuery sq;
sq.prepare(sql);
// 绑定
sq.addBindValue(model.prepend("%").append("%"));
// 执行
if(sq.exec())
{
// 清空上次显示
ui->textBrowser_Display->clear();
// 循环取出
while(sq.next())
{
// 按序列号取出
QString word = sq.value("word").toString();
QString pronunciation = sq.value("pronunciation").toString();
QString meaning = sq.value("meaning").toString();
// 展示
QString row = word.append(" ")+pronunciation.append(" ")+meaning;
ui->textBrowser_Display->append(row);
}
}
else
{
QString text = sq.lastError().text();
text.prepend("查询数据失败!");
QMessageBox::critical(this,"错误",text);
}
按钮组点击槽函数
selectLike();
dialog类源文件析构函数
delete ui;
ui界面