⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentaction.cpp

📁 学校社团管理系统Visual C
💻 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 + -