文章目录
前言
Sqlite 数据库作为 Qt 项目开发中经常使用的一个轻量级的数据库。Qt5 以上版本可以直接使用(Qt自带驱动),是一个轻量级的数据库
一、导入数据库模块
QT += sql
二、链接数据库并新建
代码如下:
db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("x.db");
bool ok=db.open();
if(ok)
QMessageBox::information(this,"Information","open sucessfully");
else
QMessageBox::information(this,"Information","open fail");
QSqlQuery query;
query_OK= query.exec("create table x(编号 vchar primary key, 时间 vchar,状态 vchar ,数值 vchar)");
if(query_OK)
{
qDebug()<< "success!";
}
else
{
qDebug()<< "fail!" << db.lastError();
}
2.初始化1000组数据
代码如下:
for(int i = 0; i <= 1000; i++)
{
QString insert_buf;
QSqlQuery query;
QString zt = "ok";
QString sz = "7";
QString currentDateTimeString = currentDateTime.toString("yyyy-MM-dd hh:mm:ss");
insert_buf=QObject::tr("insert into Gl values('%1','%2','%3','%4')").arg( QString::number(i),currentDateTimeString,zt,sz);
query.exec(insert_buf);
}
3.按时间区间筛选数据并显示
QString startDateTime = ui->lineEdit_6->text(); // 开始时间
QString endDateTime = ui->lineEdit_7->text(); // 结束时间
QSqlQuery query;
if (query.exec("SELECT * FROM Gl WHERE 时间 BETWEEN '" + startDateTime + "' AND '" + endDateTime + "'")) {
// 查询成功
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery(query);
// 将查询结果设置给 QTableView 显示
ui->tableView->setModel(model);
} else {
// 查询失败
qDebug() << "查询失败:" << query.lastError().text();
}
4.手动添加数据
bh=ui->lineEdit->text();
sj=ui->lineEdit_2->text();
zt=ui->lineEdit_3->text();
sz=ui->lineEdit_4->text();
if(bh.isEmpty() || bh.isEmpty() || bh.isEmpty() || sz.isEmpty() )
{
QMessageBox::warning(this,"Incomplete information","error");
return;
}
QString ibuf;
QSqlQuery query;
ibuf=QObject::tr("insert into Gl values('%1','%2','%3','%4')").arg(bh,sj,zt,sz);
query.exec(insert_buf);