下面是运行结果,能够实现基本查询,修改,插入操作
下面是代码:
DataBase.h中 #ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlRecord>
#include <QString>
#include <QDebug>
#define admin 1
#define bus 2
#define route 3
#define user 4
class DataBase : public QWidget
{
Q_OBJECT
public:
DataBase(QWidget *parent = 0);
~DataBase();
bool createConnection(); //创建连接
bool createTable(int); //创建数据库表
QSqlQuery query(int); //查询所有信息
bool sortById(); //排序
bool deleteById(int, QString); //删除
bool insert(int, QString, QString, QString = NULL, QString = NULL, QString = NULL, QString = NULL); //插入数据
bool updateById(int, QString, QString, QString = NULL, QString = NULL, QString = NULL, QString = NULL); //更新
};
#endif // WIDGET_H
DataBase.cpp中
#include "database.h"
DataBase::DataBase(QWidget *parent)
: QWidget(parent)
{
}
bool DataBase::createConnection()
{
//以后就可以用"sqlite1"与数据库进行连接了
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "sqlite1");
db.setDatabaseName(".//qtDb.db");
if( !db.open())
{
qDebug() << "无法建立数据库连接";
return false;
}
return true;
}
//创建数据库表
bool DataBase::createTable(int type)
{
QSqlDatabase db = QSqlDatabase::database("sqlite1"); //建立数据库连接
QSqlQuery query(db);
bool success;
switch (type) {
case admin: //建立管理员表格
success = query.exec("create table admin(id varchar primary key, passwd varchar)");
if(success)
{
qDebug() << QObject::tr("admin数据库表创建成功!\n");
insert(admin, "admin", "admin");
return true;
}
else
{
qDebug() << QObject::tr("admin数据库表创建失败!\n");
return false;
}
break;
case bus: //公交车表信息 车牌号,班次,开始时间,结束时间,司机,路线
success = query.exec("create table bus(licence varchar primary key,id varchar,"
"starttime varchar,endtime varchar,driver varchar,"
"route varchar)");
if(success)
{
qDebug() << QObject::tr("bus数据库表创建成功!\n");
insert(bus, "2626", "23", "6:20", "18:20", "张三", "23");
return true;
}
else
{
qDebug() << QObject::tr("bus数据库表创建失败!\n");
return false;
}
break;
case route:
success = query.exec("create table route(routeid varchar primary key,startplace varchar,"
"crossplace varchar, endplace varchar)");
if(success)
{
qDebug() << QObject::tr("route数据库表创建成功!\n");
insert(route,"Bus225","淮安","盐城","如皋","7.40");
return true;
}
else
{
qDebug() << QObject::tr("route数据库表创建失败!\n");
return false;
}
break;
case user:
success = query.exec("create table user(userid varchar primary key,money varchar)");
if(success)
{
qDebug() << QObject::tr("user数据库表创建成功!\n");
insert(user,"2222","22");
insert(user,"3333","33");
insert(user,"4444","44");
insert(user,"5555","55");
insert(user,"6666","66");
insert(user,"7777","77");
return true;
}
else
{
qDebug() << QObject::tr("user数据库表创建失败!\n");
return false;
}
break;
default:
break;
}
}
//向数据库中插入记录
bool DataBase::insert(int type, QString variable1, QString variable2, QString variable3,
QString variable4, QString variable5, QString variable6)
{
bool success;
QSqlDatabase db = QSqlDatabase::database("sqlite1"); //建立数据库连接
QSqlQuery query(db);
switch (type) {
case admin:
//插入管理员信息
query.prepare("insert into admin values(?, ?)");
query.bindValue(0, variable1);
query.bindValue(1, variable2);
break;
case bus:
query.prepare("insert into bus values(?, ?, ?, ?, ?, ?)");
query.bindValue(0, variable1);
query.bindValue(1, variable2);
query.bindValue(2, variable3);
query.bindValue(3, variable4);
query.bindValue(4, variable5);
query.bindValue(5, variable6);
break;
case route:
query.prepare("insert into route values(?, ?, ?, ?)");
query.bindValue(0, variable1);
query.bindValue(1, variable2);
query.bindValue(2, variable3);
query.bindValue(3, variable4);
break;
case user:
query.prepare("insert into user values(?, ?)");
query.bindValue(0, variable1);
query.bindValue(1, variable2);
break;
default:
break;
}
success=query.exec();
if(!success)
{
QSqlError lastError = query.lastError();
qDebug() << lastError.driverText() << QString(QObject::tr("插入失败"));
return false;
}
return true;
}
//查询所有信息
QSqlQuery DataBase::query(int type)
{
QSqlDatabase db = QSqlDatabase::database("sqlite1"); //建立数据库连接
QSqlQuery query(db);
QString strtype;
switch (type) {
case admin:
strtype = "admin";
break;
case bus:
strtype = "bus";
break;
case route:
strtype = "route";
break;
case user:
strtype = "user";
break;
default:
break;
}
query.exec(QString("select count(*) from sqlite_master where type='table' and name = '%1'").arg(strtype));
if(query.next())
{
if(query.value(0).toInt()==0)
{
createTable(type);
}
}
query.exec(QString("select * from '%1'").arg(strtype));
return query;
}
//根据ID删除记录
bool DataBase::deleteById(int type, QString key)
{
QSqlDatabase db = QSqlDatabase::database("sqlite1"); //建立数据库连接
QSqlQuery query(db);
switch (type) {
case admin:
query.prepare(QString("delete from admin where id = %1").arg(key));
break;
case bus:
query.prepare(QString("delete from bus where licence = %1").arg(key));
break;
case route:
query.prepare(QString("delete from route where routeid = %1").arg(key));
break;
case user:
query.prepare(QString("delete from user where userid = %1").arg(key));
break;
default:
break;
}
if(!query.exec())
{
qDebug() << "删除记录失败!";
return false;
}
return true;
}
//根据ID更新记录
bool DataBase::updateById(int type, QString variable1, QString variable2, QString variable3,
QString variable4, QString variable5, QString variable6)
{
QSqlDatabase db = QSqlDatabase::database("sqlite1"); //建立数据库连接
QSqlQuery query(db);
switch (type) {
case admin:
query.prepare("update admin set passwd = ? where id = ?");
query.bindValue(0,variable2);
query.bindValue(1,variable1);
break;
case bus:
query.prepare("update bus set id = ?, starttime = ?,endtime = ?,driver = ?, route = ? where licence = ?");
query.bindValue(0,variable2);
query.bindValue(1,variable3);
query.bindValue(2,variable4);
query.bindValue(3,variable5);
query.bindValue(4,variable6);
query.bindValue(5,variable1);
break;
case route:
query.prepare("update route set startplace = ?, crossplace = ?,endplace = ? where routeid = ?");
query.bindValue(0,variable2);
query.bindValue(1,variable3);
query.bindValue(2,variable4);
query.bindValue(3,variable1);
break;
case user:
query.prepare("update user set money = ? where userid = ?");
query.bindValue(0,variable2);
query.bindValue(1,variable1);
break;
default:
break;
}
bool success=query.exec();
if(!success)
{
QSqlError lastError = query.lastError();
qDebug() << lastError.driverText() << QString(QObject::tr("更新失败"));
}
return true;
}
DataBase::~DataBase()
{
}
Manage.h中
#ifndef MANAGE_H
#define MANAGE_H
#include <QWidget>
#include <QObject>
#include <QWidget>
#include <QPushButton>
#include <QSqlQuery>
#include <QString>
#include <QLabel>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QHeaderView>
#include <QStringList>
#include <QComboBox>
#include <QDateTime>
#include <QLineEdit>
#include <QTextEdit>
#include <QFile>
#include <QFileDialog>
#include "database.h"
class Manage : public QWidget
{
Q_OBJECT
public:
explicit Manage(QWidget *parent = 0);
QPushButton *m_AdminManageBtn; //管理员信息管理按钮
QPushButton *m_BusManageBtn; //公交车信息管理按钮
QPushButton *m_RouteManageBtn; //路线信息管理按钮
QPushButton *m_UserManageBtn; //用户信息管理按钮
QTableWidget *m_InfoTable; //表格,显示信息
DataBase m_database; //数据库类
int type; //识别修改哪个数据库等
QString tableKey; //数据库表的主键,用于修改和删除
QTextEdit *m_LogInfo; //显示日志文件内容
QLineEdit *m_AdminLE_1;
QLineEdit *m_AdminLE_2;
QLineEdit *m_BusLE_1;
QLineEdit *m_BusLE_2;
QLineEdit *m_BusLE_3;
QLineEdit *m_BusLE_4;
QLineEdit *m_BusLE_5;
QLineEdit *m_BusLE_6;
QLineEdit *m_RouteLE_1;
QLineEdit *m_RouteLE_2;
QLineEdit *m_RouteLE_3;
QLineEdit *m_RouteLE_4;
QLineEdit *m_UserLE_1;
QLineEdit *m_UserLE_2;
public slots:
void m_slot_AdminManageBtn_Clicked(); //管理员信息管理按钮点击事件
void m_slot_BusManageBtn_Clicked(); //公交车信息管理按钮点击事件
void m_slot_RouteManageBtn_Clicked(); //路线信息管理按钮点击事件
void m_slot_UserManageBtn_Clicked(); //用户信息查看按钮点击事件
void m_slot_Combox_1(int); //下拉框1点击事件
void m_slot_Combox_2(int); //下拉框2点击事件
void m_slot_add(); //添加按钮点击事件
void m_slot_config(); //修改按钮点击事件
void updateMoney(int, QByteArray);
signals:
public slots:
};
#endif // MANAGE_H
Manage.cpp中
#include "manage.h"
Manage::Manage(QWidget *parent) : QWidget(parent)
{
this->resize(520,500);
m_database.createConnection();
type = 0;
m_AdminManageBtn = new QPushButton("管理员信息",this);
m_BusManageBtn = new QPushButton("公交车管理",this);
m_RouteManageBtn = new QPushButton("路线管理",this);
m_UserManageBtn = new QPushButton("用户管理",this);
m_InfoTable = new QTableWidget(this);
m_LogInfo = new QTextEdit(this);
m_AdminManageBtn->setGeometry(30,10,100,20);
m_BusManageBtn->setGeometry(150,10,100,20);
m_RouteManageBtn->setGeometry(270,10,100,20);
m_UserManageBtn->setGeometry(390,10,100,20);
m_InfoTable->setGeometry(10,70,500,420);
m_LogInfo->setGeometry(10,70,500,420);
m_InfoTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//使列完全填充并平分
m_InfoTable->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑
connect(m_AdminManageBtn,SIGNAL(clicked(bool)),this,SLOT(m_slot_AdminManageBtn_Clicked()));
connect(m_BusManageBtn,SIGNAL(clicked(bool)),this,SLOT(m_slot_BusManageBtn_Clicked()));
connect(m_RouteManageBtn,SIGNAL(clicked(bool)),this,SLOT(m_slot_RouteManageBtn_Clicked()));
connect(m_UserManageBtn,SIGNAL(clicked(bool)),this,SLOT(m_slot_UserManageBtn_Clicked()));
m_AdminLE_1 = new QLineEdit();
m_AdminLE_2 = new QLineEdit();
m_BusLE_1 = new QLineEdit();
m_BusLE_2 = new QLineEdit();
m_BusLE_3 = new QLineEdit();
m_BusLE_4 = new QLineEdit();
m_BusLE_5 = new QLineEdit();
m_BusLE_6 = new QLineEdit();
m_RouteLE_1 = new QLineEdit();
m_RouteLE_2 = new QLineEdit();
m_RouteLE_3 = new QLineEdit();
m_RouteLE_4 = new QLineEdit();
m_UserLE_1 = new QLineEdit();
m_UserLE_2 = new QLineEdit();
}
void Manage::m_slot_AdminManageBtn_Clicked()
{
m_InfoTable->setVisible(true);
m_LogInfo->setVisible(false);
type = admin;
m_InfoTable->clear(); //清除所有可见数据(包括表头),行还在
m_InfoTable->setRowCount(0); //连行也清除掉
int row = m_InfoTable->rowCount(); //获取表格中当前总行数
m_InfoTable->setColumnCount(3); //设置列数
QStringList header;
header<<tr("账号")<<tr("密码")<<tr("操作");
m_InfoTable->setHorizontalHeaderLabels(header);
QSqlQuery query = m_database.query(admin);
while(query.next())
{
m_InfoTable->setRowCount(++row);//添加一行
m_InfoTable->setRowHeight(row-1, 24);//设置行的高度
for(int index = 0; index < 2; index++)
{
QTableWidgetItem *item = new QTableWidgetItem(query.value(index).toString());
m_InfoTable->setItem(row-1, index, item);
}
QComboBox *combox_1 = new QComboBox(); // 下拉选择框控件
combox_1->addItem("---");
combox_1->addItem("修改");
combox_1->addItem("删除");
m_InfoTable->setCellWidget(row-1, 2, (QWidget*)combox_1);
connect(combox_1,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_1(int)));
}
m_InfoTable->setRowCount(++row);//添加一行
m_InfoTable->setRowHeight(row-1, 24);//设置行的高度
QComboBox *combox_2 = new QComboBox(); // 下拉选择框控件
combox_2->addItem("---");
combox_2->addItem("添加");
m_InfoTable->setCellWidget(row-1, 2, (QWidget*)combox_2);
connect(combox_2,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_2(int)));
}
void Manage::m_slot_BusManageBtn_Clicked()
{
m_InfoTable->setVisible(true);
m_LogInfo->setVisible(false);
type = bus;
m_InfoTable->clear(); //清除所有可见数据(包括表头),行还在
m_InfoTable->setRowCount(0); //连行也清除掉
int row = m_InfoTable->rowCount(); //获取表格中当前总行数
m_InfoTable->setColumnCount(7); //设置列数
QStringList header;
header<<tr("车牌号")<<tr("班次")<<tr("始发时间")<<tr("结束时间")<<tr("司机")<<tr("路线")<<tr("操作");
m_InfoTable->setHorizontalHeaderLabels(header);
QSqlQuery query = m_database.query(2);
while(query.next())
{
m_InfoTable->setRowCount(++row); //添加一行
m_InfoTable->setRowHeight(row-1, 24); //设置行的高度
for(int index = 0; index < 6; index++)
{
QTableWidgetItem *item = new QTableWidgetItem(query.value(index).toString());
m_InfoTable->setItem(row-1, index, item);
}
QComboBox *combox_1 = new QComboBox(); // 下拉选择框控件
combox_1->addItem("---");
combox_1->addItem("修改");
combox_1->addItem("删除");
m_InfoTable->setCellWidget(row-1, 6, (QWidget*)combox_1);
connect(combox_1,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_1(int)));
}
m_InfoTable->setRowCount(++row); //添加一行
m_InfoTable->setRowHeight(row-1, 24); //设置行的高度
QComboBox *combox_2 = new QComboBox(); // 下拉选择框控件
combox_2->addItem("---");
combox_2->addItem("添加");
m_InfoTable->setCellWidget(row-1, 6, (QWidget*)combox_2);
connect(combox_2,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_2(int)));
}
void Manage::m_slot_RouteManageBtn_Clicked()
{
m_InfoTable->setVisible(true);
m_LogInfo->setVisible(false);
type = route;
m_InfoTable->clear();//清除所有可见数据(包括表头),行还在
m_InfoTable->setRowCount(0);//连行也清除掉
int row = m_InfoTable->rowCount();//获取表格中当前总行数
m_InfoTable->setColumnCount(5); //设置列数
QStringList header;
header<<tr("班次")<<tr("始发地点")<<tr("途径地点")<<tr("终点站")<<tr("操作");
m_InfoTable->setHorizontalHeaderLabels(header);
QSqlQuery query = m_database.query(3);
while(query.next())
{
m_InfoTable->setRowCount(++row);//添加一行
m_InfoTable->setRowHeight(row-1, 24);//设置行的高度
for(int index = 0; index < 6; index++)
{
QTableWidgetItem *item = new QTableWidgetItem(query.value(index).toString());
m_InfoTable->setItem(row-1, index, item);
}
QComboBox *combox_1 = new QComboBox(); // 下拉选择框控件
combox_1->addItem("---");
combox_1->addItem("修改");
combox_1->addItem("删除");
m_InfoTable->setCellWidget(row-1, 4, (QWidget*)combox_1);
connect(combox_1,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_1(int)));
}
m_InfoTable->setRowCount(++row);//添加一行
m_InfoTable->setRowHeight(row-1, 24);//设置行的高度
QComboBox *combox_2 = new QComboBox(); // 下拉选择框控件
combox_2->addItem("---");
combox_2->addItem("添加");
m_InfoTable->setCellWidget(row-1, 4, (QWidget*)combox_2);
connect(combox_2,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_2(int)));
}
void Manage::m_slot_UserManageBtn_Clicked()
{
m_InfoTable->setVisible(true);
m_LogInfo->setVisible(false);
type = user;
m_InfoTable->clear();//清除所有可见数据(包括表头),行还在
m_InfoTable->setRowCount(0);//连行也清除掉
int row = m_InfoTable->rowCount();//获取表格中当前总行数
m_InfoTable->setColumnCount(3); //设置列数
QStringList header;
header<<tr("用户账号")<<tr("剩余金额")<<tr("操作");
m_InfoTable->setHorizontalHeaderLabels(header);
QSqlQuery query = m_database.query(user);
while(query.next())
{
m_InfoTable->setRowCount(++row);//添加一行
m_InfoTable->setRowHeight(row-1, 24);//设置行的高度
for(int index = 0; index < 2; index++)
{
QTableWidgetItem *item = new QTableWidgetItem(query.value(index).toString());
m_InfoTable->setItem(row-1, index, item);
}
QComboBox *combox_1 = new QComboBox(); // 下拉选择框控件
combox_1->addItem("---");
combox_1->addItem("修改");
combox_1->addItem("删除");
m_InfoTable->setCellWidget(row-1, 2, (QWidget*)combox_1);
connect(combox_1,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_1(int)));
}
m_InfoTable->setRowCount(++row);//添加一行
m_InfoTable->setRowHeight(row-1, 24);//设置行的高度
QComboBox *combox_2 = new QComboBox(); // 下拉选择框控件
combox_2->addItem("---");
combox_2->addItem("添加");
m_InfoTable->setCellWidget(row-1, 2, (QWidget*)combox_2);
connect(combox_2,SIGNAL(currentIndexChanged(int)),this,SLOT(m_slot_Combox_2(int)));
}
void Manage::m_slot_Combox_1(int num)
{
int column = m_InfoTable->columnCount()-1;
QString msg;
QSqlQuery query;
switch (num) {
case 1:
for(int i=0;i<m_InfoTable->rowCount();i++)
{
QWidget *widget=m_InfoTable->cellWidget(i,column);
QComboBox *combox=(QComboBox*)widget;
msg = combox->currentText();
if(msg == "修改")
{
tableKey = m_InfoTable->item(i,0)->text();
switch (type) {
case admin:
m_InfoTable->setCellWidget(i, 1, (QWidget*)m_AdminLE_2);
query = m_database.query(admin);
while(query.next())
{
if(query.value(0).toString() == tableKey)
{
m_AdminLE_2->setText(query.value(1).toString());
break;
}
}
break;
case bus:
m_InfoTable->setCellWidget(i, 1, (QWidget*)m_BusLE_2);
m_InfoTable->setCellWidget(i, 2, (QWidget*)m_BusLE_3);
m_InfoTable->setCellWidget(i, 3, (QWidget*)m_BusLE_4);
m_InfoTable->setCellWidget(i, 4, (QWidget*)m_BusLE_5);
m_InfoTable->setCellWidget(i, 5, (QWidget*)m_BusLE_6);
query = m_database.query(bus);
while(query.next())
{
if(query.value(0).toString() == tableKey)
{
m_BusLE_2->setText(query.value(1).toString());
m_BusLE_3->setText(query.value(2).toString());
m_BusLE_4->setText(query.value(3).toString());
m_BusLE_5->setText(query.value(4).toString());
m_BusLE_6->setText(query.value(5).toString());
break;
}
}
break;
case route:
m_InfoTable->setCellWidget(i, 1, (QWidget*)m_RouteLE_2);
m_InfoTable->setCellWidget(i, 2, (QWidget*)m_RouteLE_3);
m_InfoTable->setCellWidget(i, 3, (QWidget*)m_RouteLE_4);
query = m_database.query(route);
while(query.next())
{
if(query.value(0).toString() == tableKey)
{
m_RouteLE_2->setText(query.value(1).toString());
m_RouteLE_3->setText(query.value(2).toString());
m_RouteLE_4->setText(query.value(3).toString());
break;
}
}
break;
case user:
m_InfoTable->setCellWidget(i, 1, (QWidget*)m_UserLE_2);
query = m_database.query(user);
while(query.next())
{
if(query.value(0).toString() == tableKey)
{
m_UserLE_2->setText(query.value(1).toString());
break;
}
}
break;
default:
break;
}
QPushButton *configBtn = new QPushButton("修改"); // 确定按钮
connect(configBtn,SIGNAL(clicked(bool)),this,SLOT(m_slot_config()));
m_InfoTable->setCellWidget(i, column, (QWidget*)configBtn);
}
}
break;
case 2:
//点击删除后,当前选项卡会变为“删除”,遍历表格,为“删除”项开始执行删除操作
for(int i=0;i<m_InfoTable->rowCount();i++)
{
QWidget *widget=m_InfoTable->cellWidget(i,column);
QComboBox *combox=(QComboBox*)widget;
msg = combox->currentText();
if(msg == "删除")
{
tableKey = m_InfoTable->item(i,0)->text();
switch (type) {
case admin:
m_database.deleteById(admin,tableKey);
m_slot_AdminManageBtn_Clicked();
break;
case bus:
m_database.deleteById(bus,tableKey);
m_slot_BusManageBtn_Clicked();
break;
case route:
m_database.deleteById(route,tableKey);
m_slot_RouteManageBtn_Clicked();
break;
case user:
m_database.deleteById(user,tableKey);
m_slot_UserManageBtn_Clicked();
break;
default:
break;
}
}
}
break;
default:
break;
}
}
void Manage::m_slot_Combox_2(int num)
{
int column = m_InfoTable->columnCount()-1;
switch (num) {
case 1:
{
int row = m_InfoTable->rowCount() - 1;//获取表格中当前总行数
QPushButton *pushBtn = new QPushButton("添加"); // 确定按钮
connect(pushBtn,SIGNAL(clicked(bool)),this,SLOT(m_slot_add()));
m_InfoTable->setCellWidget(row, column, (QWidget*)pushBtn);
switch (type) {
case admin:
m_InfoTable->setCellWidget(row, 0, (QWidget*)m_AdminLE_1);
m_InfoTable->setCellWidget(row, 1, (QWidget*)m_AdminLE_2);
break;
case bus:
m_InfoTable->setCellWidget(row, 0, (QWidget*)m_BusLE_1);
m_InfoTable->setCellWidget(row, 1, (QWidget*)m_BusLE_2);
m_InfoTable->setCellWidget(row, 2, (QWidget*)m_BusLE_3);
m_InfoTable->setCellWidget(row, 3, (QWidget*)m_BusLE_4);
m_InfoTable->setCellWidget(row, 4, (QWidget*)m_BusLE_5);
m_InfoTable->setCellWidget(row, 5, (QWidget*)m_BusLE_6);
break;
case route:
m_InfoTable->setCellWidget(row, 0, (QWidget*)m_RouteLE_1);
m_InfoTable->setCellWidget(row, 1, (QWidget*)m_RouteLE_2);
m_InfoTable->setCellWidget(row, 2, (QWidget*)m_RouteLE_3);
m_InfoTable->setCellWidget(row, 3, (QWidget*)m_RouteLE_4);
break;
case user:
m_InfoTable->setCellWidget(row, 0, (QWidget*)m_UserLE_1);
m_InfoTable->setCellWidget(row, 1, (QWidget*)m_UserLE_2);
break;
default:
break;
}
}
break;
default:
break;
}
}
void Manage::m_slot_add()
{
switch (type) {
case admin:
m_database.insert(admin,m_AdminLE_1->text(),m_AdminLE_2->text());
m_slot_AdminManageBtn_Clicked();
break;
case bus:
m_database.insert(bus,m_BusLE_1->text(),m_BusLE_2->text(),m_BusLE_3->text(),m_BusLE_4->text(),m_BusLE_5->text(),
m_BusLE_6->text());
m_slot_BusManageBtn_Clicked();
break;
case route:
m_database.insert(route,m_RouteLE_1->text(),m_RouteLE_2->text(),m_RouteLE_3->text(),m_RouteLE_4->text());
m_slot_RouteManageBtn_Clicked();
break;
case user:
m_database.insert(user,m_UserLE_1->text(),m_UserLE_2->text());
m_slot_UserManageBtn_Clicked();
break;
default:
break;
}
}
//上车后资金的减少
void Manage::updateMoney(int iLen,QByteArray pic)
{
QString msg(pic);
QString userid = msg.section(":",1,1);
int money = msg.section(":",2,2).toInt();
QDateTime localTime = QDateTime::currentDateTime();
QString currentTime = localTime.toString("yyyy-MM-dd hh:mm:ss");
QSqlQuery query = m_database.query(user);
while(query.next())
{
if(query.value(0).toString()==userid)
{
QFile file("logfile.log");
file.open(QIODevice::ReadWrite | QIODevice::Append | QIODevice::Text);
QTextStream out(&file);
out << currentTime << "|User:" << userid << "|Money:" << QString::number(money) << endl;
file.close();
money = query.value(1).toString().toInt() - money;
m_database.updateById(user,userid,QString::number(money));
}
}
}
void Manage::m_slot_config()
{
switch (type) {
case admin:
m_database.updateById(admin,tableKey,m_AdminLE_2->text());
m_slot_AdminManageBtn_Clicked();
break;
case bus:
m_database.updateById(bus,tableKey,m_BusLE_2->text(),m_BusLE_3->text(),m_BusLE_4->text(),m_BusLE_5->text(),
m_BusLE_6->text());
m_slot_BusManageBtn_Clicked();
break;
case route:
m_database.updateById(route,tableKey,m_RouteLE_2->text(),m_RouteLE_3->text(),m_RouteLE_4->text());
m_slot_RouteManageBtn_Clicked();
break;
case user:
m_database.updateById(user,tableKey,m_UserLE_2->text());
m_slot_UserManageBtn_Clicked();
break;
default:
break;
}
}