#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowTitle("DS小龙哥资料店-会员卡注册管理系统");
//设置并打开数据库
if (QSqlDatabase::contains(LOG_IN_DATABASE_CONNECT_NAME))
{
database = QSqlDatabase::database(LOG_IN_DATABASE_CONNECT_NAME);
}
else
{
//数据库类型
database = QSqlDatabase::addDatabase("QSQLITE",LOG_IN_DATABASE_CONNECT_NAME);
database.setDatabaseName(LOG_IN_DATABASE_NAME); //数据库名称
database.setUserName("xl"); //用户名
database.setPassword("123456"); //密码
}
//打开数据库,如果数据库存在就打开,不存在就自动创建
if(database.open()==false)
{
qDebug("数据库打开失败.请检查程序运行路径和权限.\n");
}
else
{
qDebug("连接数据库成功.\n");
}
//配置表格样式属性
ui->tableWidget_card_cha_xun->setSelectionBehavior(QAbstractItemView::SelectRows);
//选中一行表头是否加粗
ui->tableWidget_card_cha_xun->horizontalHeader()->setHighlightSections(false);
//表头不可单击
ui->tableWidget_card_cha_xun->horizontalHeader()->setSectionsClickable(false);
//表列随着表格变化而自适应变化
ui->tableWidget_card_cha_xun->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
//创建VIP余额管理表
CreateTAB_VIP_Card();
//刷新表格
on_pushButton_cha_xun_all_clicked();
}
Widget::~Widget()
{
delete ui;
}
//注册新的VIP客户
void Widget::on_pushButton_register_vip_clicked()
{
QString card=ui->lineEdit_reg_vip_number->text();
QString name=ui->lineEdit_register_vip_name->text();
QString phone=ui->lineEdit_register_vip_phone->text();
if(card.isEmpty()||name.isEmpty()||phone.isEmpty())
{
QMessageBox::warning(this,"提示","请输入正确的信息",QMessageBox::Ok);
return;
}
add_VIP_Card(card,name,phone);
//刷新表格
on_pushButton_cha_xun_all_clicked();
}
//注销指定的VIP卡
void Widget::on_pushButton_delete_vip_card_clicked()
{
QString card=ui->lineEdit_reg_vip_number->text();
if(card.isEmpty())
{
QMessageBox::warning(this,"提示","请输入正确的卡号",QMessageBox::Ok);
return;
}
//数据库查询
//指定操作的数据库
QSqlQuery sql_query(database);
//查询数据库对应的ID
int id=0;
int flag=0;
QString find_card;
QString find_name;
QString find_phone;
//查询全部数据
sql_query.prepare("select * from vip");
if(!sql_query.exec())
{
Log_Text_Display("数据库查询错误.\n");
}
else
{
while(sql_query.next())
{
id=sql_query.value(0).toInt(); //id
find_card = sql_query.value(1).toString(); //卡号
find_name = sql_query.value(2).toString(); //姓名
find_phone = sql_query.value(3).toString(); //电话
if(find_card==card)
{
flag=1; //查找成功
break;
}
}
}
if(flag==0)
{
QMessageBox::warning(this,"提示",QString("%1 此卡未注册.无需注销.").arg(card),QMessageBox::Ok);
return;
}
QString info=QString("是否注销这张卡?\n卡号:%1\n姓名:%2\n电话:%3\n")
.arg(card)
.arg(find_name)
.arg(find_phone);
int value;
value=QMessageBox::question(this,"注销提示",info,
QMessageBox::Yes | QMessageBox::No,QMessageBox::Yes);
switch(value)
{
case QMessageBox::Yes:
/*处理代码*/
break;
case QMessageBox::No:
/*处理代码*/
return;
}
//删除数据库里的数据
//指定删除的id
sql_query.prepare(QString("delete from vip where id=%1;").arg(id));
if(!sql_query.exec())
{
Log_Text_Display("VIP卡数据库删除错误.\n");
}
else
{
Log_Text_Display(QString("VIP卡数据库删除成功.id=%1.\n").arg(id));
}
//刷新表格
on_pushButton_cha_xun_all_clicked();
}
//查询VIP卡全部信息
void Widget::on_pushButton_cha_xun_all_clicked()
{
//设置全选
for(int i=0;i<ui->tableWidget_card_cha_xun->rowCount();i++)
{
ui->tableWidget_card_cha_xun->item(i,0)->setSelected(true);
}
/*获取选中的列表里的所有条目*/
QList<QTableWidgetItem*> list=ui->tableWidget_card_cha_xun->selectedItems();
/*从列表中依次移除条目*/
for(int i=0;i<list.count();i++)
{
/*获取条目的行号*/
int row=ui->tableWidget_card_cha_xun->row(list.at(i));
delete list.at(i); //彻底删除条目
//因为上面的循环是以条目数量为准,所以卸载行号只需要卸载一行即可
if(row!=-1)
{
ui->tableWidget_card_cha_xun->removeRow(row);
}
}
//指定操作的数据库
QSqlQuery sql_query(database);
//查询全部数据
sql_query.prepare("select * from vip");
if(!sql_query.exec())
{
Log_Text_Display("数据库查询错误.\n");
}
else
{
while(sql_query.next())
{
QString card = sql_query.value(1).toString(); //卡号
QString name = sql_query.value(2).toString(); //姓名
QString phone = sql_query.value(3).toString(); //电话
int money=sql_query.value(4).toInt(); //余额
//返回行数。
int RowCount=ui->tableWidget_card_cha_xun->rowCount(); //获取当前总行数
ui->tableWidget_card_cha_xun->setRowCount(RowCount+1); //设置行数
int i;
//通过总列数创建单元格
for(i=0;i<ui->tableWidget_card_cha_xun->columnCount();i++)
{
ui->tableWidget_card_cha_xun->setItem(RowCount,i,new QTableWidgetItem(""));
//设置文本对齐方式
ui->tableWidget_card_cha_xun->item(RowCount,i)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
}
//设置文本
ui->tableWidget_card_cha_xun->item(RowCount,0)->setText(card);
ui->tableWidget_card_cha_xun->item(RowCount,1)->setText(name);
ui->tableWidget_card_cha_xun->item(RowCount,2)->setText(phone);
ui->tableWidget_card_cha_xun->item(RowCount,3)->setText(QString("%1元").arg(money));
}
}
}
//显示日志
void Widget::Log_Text_Display(QString text)
{
qDebug()<<text;
}
//查询单卡卡余额
void Widget::on_pushButton_query_clicked()
{
QString card=ui->lineEdit_reg_vip_number->text();
if(card.isEmpty())
{
QMessageBox::warning(this,"提示","请输入正确的卡号",QMessageBox::Ok);
return;
}
//数据库查询
//指定操作的数据库
QSqlQuery sql_query(database);
//查询数据库对应的ID
int id=0;
int flag=0;
QString find_card;
QString find_name;
QString find_phone;
int find_money=0;
//查询全部数据
sql_query.prepare("select * from vip");
if(!sql_query.exec())
{
Log_Text_Display("数据库查询错误.\n");
}
else
{
while(sql_query.next())
{
id=sql_query.value(0).toInt(); //id
find_card = sql_query.value(1).toString(); //卡号
find_name = sql_query.value(2).toString(); //姓名
find_phone = sql_query.value(3).toString(); //电话
find_money = sql_query.value(4).toInt(); //余额
没有合适的资源?快使用搜索试试~ 我知道了~
Qt+SQLITE数据库设计的会员卡管理系统-完整源码.zip
共59个文件
dll:27个
qm:22个
cpp:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 118 浏览量
2023-11-23
13:23:41
上传
评论
收藏 31.79MB ZIP 举报
温馨提示
本项目演示在QT中使用SQLITE数据库存储数据管理的过程。当前以会员卡管理系统为例,写了一个界面,完成会员卡的注册,添加,充值,查询,注销,导出顾客信息EXECL表格 等功能的实现。 演示 SQLITE数据库的建表、增、删、改、查等语句功能实现。 SQLite数据库存储在单个磁盘文件上的一个完整的数据库。该文件是一个跨平台的二进制文件,可以在许多不同的操作系统上使用。SQLite的设计目标是简单、快速、可靠、轻量级且易于使用。支持标准的SQL语法,并且实现了大多数常用的SQL功能。 Qt内置了SQLite数据库的驱动,可以直接在Qt中使用SQLite数据库。这意味着无需单独安装SQLite数据库驱动,即可通过Qt进行数据库操作。 在Qt中使用内置的SQLite驱动,可以简化开发流程并减少外部依赖。只需要引入相关的头文件,并在项目文件中添加SQL模块,就可以开始使用SQLite数据库了。然后,可以使用Qt提供的数据库类(如QSqlDatabase、QSqlQuery等)来执行各种数据库操作,如连接数据库、执行查询、处理结果等。
资源推荐
资源详情
资源评论
收起资源包目录
Qt+SQLITE设计的会员卡管理系统.zip (59个子文件)
1700716099500.mp4 14.27MB
1700716099500.gif 3.07MB
APP
libGLESV2.dll 4.3MB
styles
qwindowsvistastyle.dll 196KB
Qt5Gui.dll 6.63MB
sqldrivers
qsqlodbc.dll 104KB
qsqlite.dll 1.04MB
qsqlpsql.dll 87KB
imageformats
qjpeg.dll 388KB
qsvg.dll 32KB
qtga.dll 31KB
qtiff.dll 522KB
qwebp.dll 450KB
qgif.dll 39KB
qicns.dll 49KB
qwbmp.dll 30KB
qico.dll 40KB
Qt5Core.dll 6.32MB
Qt5Svg.dll 362KB
system_DataBase.db 12KB
Qt5Widgets.dll 6.05MB
app.exe 59KB
translations
qt_lv.qm 150KB
qt_sk.qm 123KB
qt_cs.qm 171KB
qt_de.qm 196KB
qt_ja.qm 127KB
qt_fi.qm 176KB
qt_da.qm 170KB
qt_ko.qm 128KB
qt_fr.qm 162KB
qt_pl.qm 159KB
qt_ar.qm 156KB
qt_it.qm 157KB
qt_bg.qm 161KB
qt_gd.qm 185KB
qt_es.qm 161KB
qt_en.qm 23B
qt_uk.qm 155KB
qt_zh_TW.qm 115KB
qt_ca.qm 180KB
qt_hu.qm 157KB
qt_he.qm 135KB
qt_ru.qm 182KB
iconengines
qsvgicon.dll 47KB
platforms
qwindows.dll 1.89MB
libwinpthread-1.dll 46KB
libEGL.dll 29KB
Qt5Sql.dll 289KB
opengl32sw.dll 15.25MB
libstdc++-6.dll 1.47MB
D3Dcompiler_47.dll 3.31MB
libgcc_s_dw2-1.dll 111KB
Qt_SQLITE_Demo
widget.ui 6KB
widget.cpp 16KB
Qt_SQLITE_Demo.pro 1KB
main.cpp 175B
Qt_SQLITE_Demo.pro.user 24KB
widget.h 2KB
共 59 条
- 1
资源评论
DS小龙哥
- 粉丝: 4w+
- 资源: 526
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功