#include "message.h" #include #include #include #include #include #include "widget.h" #include message::message() { } void message::mySlot(QString str) { // 使用在 main 中创建的数据库连接 QSqlDatabase db = QSqlDatabase::database("text01"); if (!db.isOpen()) { QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes); return; } // 查询空车位数量 QString temp_car = QString("select * from cnt where number='%1' ").arg("number_of_c"); QSqlQuery temp_query(db); // 使用 db 对象来执行查询 temp_query.exec(temp_car); temp_query.next(); int temp_cnt = temp_query.value(1).toInt(); if (temp_cnt == 0) { QMessageBox::warning(this, tr("警告!"), tr("停车场已无车位"), QMessageBox::Yes); } else { // 进入操作 QString number = QString("select * from message where number='%1' ").arg(str); QSqlQuery query(db), query_1(db), query_2(db); int times; // 存储进入次数 if (query.exec(number) && query.next()) { // 修改已有信息 times = query.value(1).toInt(); times++; QString temp = QString("update message set times = '%1' where number = '%2'").arg(times).arg(str); query.exec(temp); } else { // 第一次进入 QString s = QString("insert into message(number, times, total_time, pay) values('%1', '%2', '%3', '%4')") .arg(str).arg(1).arg(0).arg(0); query_2.exec(s); } // 更改车场信息 temp_cnt--; QString temp_change = QString("update cnt set cnt = '%1' where number = '%2'").arg(temp_cnt).arg("number_of_c"); temp_query.exec(temp_change); // 获取当前时间 QDateTime dateTime(QDateTime::currentDateTime()); QString time = dateTime.toString("yyyy-MM-dd hh:mm:ss"); // 存储车牌和进入时间 QString ch = QString("insert into car_number(number, time) values('%1', '%2')").arg(str).arg(time); query_1.exec(ch); } } void message::Slot_out(QString str) { // 使用在 main 中创建的数据库连接 QSqlDatabase db = QSqlDatabase::database("text01"); if (!db.isOpen()) { QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes); return; } QString Str = QString("select * from car_number where number='%1' ").arg(str); QSqlQuery query(db); query.exec(Str); query.next(); QString time = query.value(1).toString(); QDateTime time_1 = QDateTime::fromString(time, "yyyy-MM-dd hh:mm:ss"); QDateTime time_2 = QDateTime::currentDateTime(); int second = time_1.secsTo(time_2); // 计算时间差 // 删除数据库中车牌号 QString a = QString("delete from car_number where number = '%1'").arg(str); query.exec(a); // 更改车场信息 QString temp_car = QString("select * from cnt where number='%1' ").arg("number_of_c"); QSqlQuery temp_query(db); temp_query.exec(temp_car); temp_query.next(); int temp_cnt = temp_query.value(1).toInt(); temp_cnt++; QString temp_change = QString("update cnt set cnt = '%1' where number = '%2'").arg(temp_cnt).arg("number_of_c"); temp_query.exec(temp_change); }