📄 studentaction.cpp
字号:
/**
* <p> Title: 对学生对象进行增加,删除,修改,查询功能的子类实现 </p>
* <p> Description:提供对学生对象进行增加,删除,修改,查询功能的处理 </p>
* <p> Copyright: Copyright (c) 2005-12-21 </p>
* <p> Company: bjut </p>
* @author gaok
* @version 1.0
* @Created on 2005-12-21
*/
#include "stdafx.h"
#include "STMis.h"
#include "StudentAction.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*
* 构造函数
*/
StudentAction::StudentAction(Variable* vSt)
{
StudentVariable* svSt = (StudentVariable *)vSt;
m_sStunm = svSt->NM; // 学生内码,主键
m_stName = svSt->STMC; // 社团名称
m_username = svSt->LRR; // 录入人,修改人,删除人
m_xsName = svSt->XS_XM; // 姓名
m_xsId = svSt->XS_XH; // 学号
m_xsMobile = svSt->XS_YDDH; // 手机
m_xsEmail = svSt->XS_YJDZ; // 邮件地址
sIsmale = svSt->XS_XB; // 性别
}
/*
* 执行某操作(修改,删除,查询)后刷新活动列表的记录
* @param strSQL SQL文
* @return CRecordset 结果集
*/
CRecordset* StudentAction::RefreshData(CString strSQL)
{
CAddXsMsgReSet* m_recordSet = new CAddXsMsgReSet(&m_database); // 连接数据库
m_recordSet->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); // 查询数据库
return m_recordSet; // 返回结果集
}
/*
* 增加学生
*/
void StudentAction::add() {
int i = 1; // 内码
int flag = 0; // 循环标志
/* 从主码为1开始在数据库中的相应表中搜索,
如果找到记录,则主码值加1,直到数据库中无该主码值,
对应的记录,则将该主码分配给新的记录
*/
while (!flag) {
CAddXsMsgReSet m_record(&m_database); // 连接数据库
sSql.Format("select * from XS where XS_XSNM='%d'", i); // 查询社团数据表
m_record.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 通过CAddStMsgRSet进行绑定查询
if (m_record.GetRecordCount() == 0) { // 增加新的社团组织
CTime tm=CTime::GetCurrentTime(); // 获得系统当前时间
CString str=tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式
// 录入人需要从登陆人的用户名中得到,ok
sSql.Format("INSERT INTO XS (XS_XSNM,XS_XM,XS_XH,XS_XB,XS_YDDH,XS_YJDZ,XS_STMC,XS_SCBZ,XS_LRR,XS_LRSJ) VALUES (\'%d\',\'%s\',\'%s\',%d,\'%s\','%s','%s',false,\'%s\','%s')",i,m_xsName,m_xsId,sIsmale,m_xsMobile,m_xsEmail,m_stName,m_username,str); // 插入新的学生
m_database.ExecuteSQL(sSql); // 执行SQL文
m_database.Close(); // 关掉数据库
flag = 1; // 结束循环
} else if (m_record.GetRecordCount() > 0) { // 主键顺序加一
i ++;
m_database.Close(); // 关掉数据库
}
}
}
/*
* 学生信息维护页面的删除功能
*/
void StudentAction::del() {
CTime tm=CTime::GetCurrentTime(); // 获得系统当前时间
CString str=tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式
sSql.Format("select * from XS where XS_SCBZ=false and XS_XSNM ='%s' ", m_sStunm);
CAddXsMsgReSet m_resultset(&m_database); // 连接数据库
/* 通过CAddXsMsgReSet进行绑定查询 */
if(!m_resultset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql))
{
AfxMessageBox("打开数据库失败!");
return ;
}
m_resultset.Edit(); // 将修改的数据保存到数据库中
m_resultset.m_XS_SCR = m_username; // 修改人
m_resultset.m_XS_SCSJ = str; // 修改时间
m_resultset.m_XS_SCBZ = true; // 删除此学生
m_resultset.Update();
m_resultset.Close();
}
/*
* 学生信息维护页面的修改功能
*/
void StudentAction::modify() {
CTime tm = CTime::GetCurrentTime(); // 获得系统当前时间
CString str = tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式
sSql.Format("select * from XS where XS_SCBZ=false and XS_XSNM ='%s' ", m_sStunm);
CAddXsMsgReSet m_resultset(&m_database); // 连接数据库
m_resultset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 通过CAddStMsgRSet进行绑定查询
m_resultset.Edit(); // 将修改的数据保存到数据库中
m_resultset.m_XS_XM = m_xsName; // 姓名
m_recordset.m_XS_XB = sIsmale; // 性别
m_resultset.m_XS_YDDH = m_xsMobile; // 手机
m_resultset.m_XS_YJDZ = m_xsEmail; // 邮件地址
m_resultset.m_XS_STMC = m_stName; // 所在社团
m_resultset.m_XS_XGR = m_username; // 修改人
m_resultset.m_XS_XGSJ = str; // 修改时间
m_resultset.Update();
m_resultset.Close();
}
void StudentAction::search() {
}
void StudentAction::view() {
}
/*
* 判断数据库中是否存在所要增加的学生信息
* @return bool true/false
*/
bool StudentAction::isEmpty() {
sSql.Format("select * from XS where XS_XH='%s' and XS_STMC='%s' and XS_SCBZ=false", m_xsId, m_stName); // 查询数据库,是否已经录入过此学生
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 查询数据库
if (m_recordset.GetRecordCount() == 0) { // 如果不存在学号为m_xsId的
m_database.Close(); // 关掉数据库
return true;
} else { // 冲突
m_database.Close(); // 关闭数据库
return false;
}
}
/*
* 析构函数
*/
StudentAction::~StudentAction()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -