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

📄 dialogstu.cpp

📁 这是学生信息管理系统的源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			return;
		}

		//显示最后一条记录		
		m_pRecordset->MoveLast();
		var = m_pRecordset->GetCollect("StuID");
		if(var.vt != VT_NULL)		
		m_StuID = var.iVal ;

		var = m_pRecordset->GetCollect("StuName");
		str = (LPCSTR)_bstr_t(var);
		m_StuName = str;

		var = m_pRecordset->GetCollect("StuSex");
		str = (LPCSTR)_bstr_t(var);
		m_StuSex = str;

		var = m_pRecordset->GetCollect("StuYear");		
		m_StuYear = var.date;

		var = m_pRecordset->GetCollect("TeaID");		
		m_TeaID = var.iVal; 

		var = m_pRecordset->GetCollect("ComYear");		
		m_ComYear = var.date;

		var = m_pRecordset->GetCollect("ComFrom");
		str = (LPCSTR)_bstr_t(var);
		m_ComFrom = str;
	
		UpdateData(false);				
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
}

//////////////////////////
//
//执行修改功能
//
/////////////////////////
void CDialogSTU::Modify()
{
	//定义变量
	_variant_t var;
	CString str;
	//更新控件变量的值
	UpdateData(true);	

	if(m_StuID == 0 || m_TeaID == 0)
	{
		AfxMessageBox("学号和导师信息不能为空!");
		return;
	}

	//判断修改后的导师号是否存在
	if(m_TeaID !=0)
	{
        m_pRecordset->Close();

		OpenTEACHERS();

		if(m_pRecordset->BOF)
		{
			AfxMessageBox("导师表为空,需先建立导师表!");
			m_pRecordset->Close();
			OpenSTUDENTS();
			return;
		}
		else
		{
			m_pRecordset->MoveFirst();
			while(!m_pRecordset->adoEOF)
			{
				var = m_pRecordset->GetCollect("TeaID");
				if(m_TeaID == var.iVal)
				{
					break;
				}
				m_pRecordset->MoveNext();
			}
			if(m_pRecordset->adoEOF)
			{
				AfxMessageBox("没有这个导师号!");
				m_pRecordset->Close();
				OpenSTUDENTS();
				return;
			}
			else
			{
				m_pRecordset->Close();
				OpenSTUDENTS();
				m_pRecordset->MoveFirst();
				while(!m_pRecordset->adoEOF)
				{
					var = m_pRecordset->GetCollect("StuID");
					if(m_StuID == var.iVal)
					{
						break;
					}
					m_pRecordset->MoveNext();
				}
			}
		}		
	}
	//
	// 修改当前记录的字段值
	//
	try
	{
		var.iVal = m_StuID;
		m_pRecordset->PutCollect("StuID", var.iVal);
		
		m_pRecordset->PutCollect("StuName", _variant_t(m_StuName));

		m_pRecordset->PutCollect("StuSex", _variant_t(m_StuSex));

		var.date = m_StuYear;
	    m_pRecordset->PutCollect("StuYear", var.date);

		var.iVal = m_TeaID;
		m_pRecordset->PutCollect("TeaID", var.iVal);

		var.date = m_ComYear;
	    m_pRecordset->PutCollect("ComYear", var.date);

		m_pRecordset->PutCollect("ComFrom", _variant_t(m_ComFrom));

		m_pRecordset->Update();

		AfxMessageBox("修改成功!");			
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
}

void CDialogSTU::OnButtonOK() 
{
	// TODO: ADD your control notification handler code here	
	if(FOUNCTION == SEARCH)
	{
		Query();		
	}	
	else if(FOUNCTION == ADD)
	{
		Add();		
	}	
	else if(FOUNCTION == DEL)
	{
		Delete();		
	}	
	else if(FOUNCTION == MODIFY)		
	{
		Modify();		
	}	
}

void CDialogSTU::OnButtonGoBack() 
{
	// TODO: ADD your control notification handler code here	
	//关闭记录集,退出
	m_pRecordset->Close();
	OnCancel();	
}

void CDialogSTU::OnButtonAdd() 
{
	// TODO: ADD your control notification handler code here
	//
	//给所有显示控件一个添加之前的初值
	//
	m_StuID = 0;
	m_TeaID =  0;
	m_StuName = "";
	m_StuSex = "男";
	m_ComFrom  = "";
	m_StuYear.SetDate(2003, 8, 15);
	m_ComYear.SetDate(1980, 8, 15);
	UpdateData(false);
	//更新FOUNCTION值
	FOUNCTION = ADD;
	//修改各个矩形按钮的属性
	m_btnQuery.EnableWindow(FALSE);
	m_btnAdd.SetState(TRUE);
	m_btnDelete.EnableWindow(FALSE);
	m_btnModify.EnableWindow(FALSE);
	m_btnFirst.EnableWindow(FALSE);
	m_btnPre.EnableWindow(FALSE);
	m_btnNext.EnableWindow(FALSE);
	m_btnLast.EnableWindow(FALSE);
	m_btnOK.SetFocus();	
}

void CDialogSTU::OnButtonDelete() 
{
	// TODO: ADD your control notification handler code here
	if(MessageBox("真的删除?\n是请按“是”,\n否请按“否”!", NULL, MB_YESNO | MB_ICONQUESTION) == IDYES)
	{
		//更新FOUNCTION值
		FOUNCTION = DEL;
		OnButtonOK();
	}
	else
	{
		OnButtonCancel();
	}
}

void CDialogSTU::OnButtonModify() 
{
	// TODO: ADD your control notification handler code here
	//更新FOUNCTION值
	FOUNCTION = MODIFY;
	m_ctlStuID.SetReadOnly();
	//修改各个矩形按钮的属性
	m_btnQuery.EnableWindow(FALSE);
	m_btnAdd.EnableWindow(FALSE);
	m_btnDelete.EnableWindow(FALSE);
	m_btnModify.SetState(TRUE);
	m_btnFirst.EnableWindow(FALSE);
	m_btnPre.EnableWindow(FALSE);
	m_btnNext.EnableWindow(FALSE);
	m_btnLast.EnableWindow(FALSE);
	m_btnOK.SetFocus();	
}

void CDialogSTU::OnButtonFirst() 
{
	// TODO: ADD your control notification handler code here
	m_pRecordset->MoveFirst();
	_variant_t var;
	CString str;		
	
	try
	{
		var = m_pRecordset->GetCollect("StuID");
		if(var.vt != VT_NULL)		
		m_StuID = var.iVal ;

		var = m_pRecordset->GetCollect("StuName");
		str = (LPCSTR)_bstr_t(var);
		m_StuName = str;

		var = m_pRecordset->GetCollect("StuSex");
		str = (LPCSTR)_bstr_t(var);
		m_StuSex = str;

		var = m_pRecordset->GetCollect("StuYear");		
		m_StuYear = var.date;

		var = m_pRecordset->GetCollect("TeaID");		
		m_TeaID = var.iVal; 

		var = m_pRecordset->GetCollect("ComYear");		
		m_ComYear = var.date;

		var = m_pRecordset->GetCollect("ComFrom");
		str = (LPCSTR)_bstr_t(var);
		m_ComFrom = str;
	
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}	
}

void CDialogSTU::OnButtonPre() 
{
	// TODO: ADD your control notification handler code here
	
	m_pRecordset->MovePrevious();
	_variant_t var;
	CString str;	
	if(m_pRecordset->BOF)
	{
		MessageBox("已经是首记录!");
	    m_pRecordset->MoveFirst();
	}
	
	try
	{
		var = m_pRecordset->GetCollect("StuID");
		if(var.vt != VT_NULL)		
		m_StuID = var.iVal;

		var = m_pRecordset->GetCollect("StuName");
		str = (LPCSTR)_bstr_t(var);
		m_StuName = str;

		var = m_pRecordset->GetCollect("StuSex");
		str = (LPCSTR)_bstr_t(var);
		m_StuSex = str;

		var = m_pRecordset->GetCollect("StuYear");		
		m_StuYear = var.date;

		var = m_pRecordset->GetCollect("TeaID");		
		m_TeaID = var.iVal; 

		var = m_pRecordset->GetCollect("ComYear");		
		m_ComYear = var.date;

		var = m_pRecordset->GetCollect("ComFrom");
		str = (LPCSTR)_bstr_t(var);
		m_ComFrom = str;
	
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}	
}

void CDialogSTU::OnButtonNext() 
{
	// TODO: ADD your control notification handler code here
	m_pRecordset->MoveNext();
	_variant_t var;
	CString str;
	
	if(m_pRecordset->adoEOF)
	{
		MessageBox("已经是末记录!");
	    m_pRecordset->MoveLast();
	}
	
	try
	{
		var = m_pRecordset->GetCollect("StuID");
		if(var.vt != VT_NULL)		
		m_StuID = var.iVal;

		var = m_pRecordset->GetCollect("StuName");
		str = (LPCSTR)_bstr_t(var);
		m_StuName = str;

		var = m_pRecordset->GetCollect("StuSex");
		str = (LPCSTR)_bstr_t(var);
		m_StuSex = str;

		var = m_pRecordset->GetCollect("StuYear");		
		m_StuYear = var.date;

		var = m_pRecordset->GetCollect("TeaID");		
		m_TeaID = var.iVal; 

		var = m_pRecordset->GetCollect("ComYear");		
		m_ComYear = var.date;

		var = m_pRecordset->GetCollect("ComFrom");
		str = (LPCSTR)_bstr_t(var);
		m_ComFrom = str;
	
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}	
}

void CDialogSTU::OnButtonLast() 
{
	// TODO: ADD your control notification handler code here
	m_pRecordset->MoveLast();
	_variant_t var;
	CString str;		
	
	try
	{
		var = m_pRecordset->GetCollect("StuID");
		if(var.vt != VT_NULL)		
		m_StuID = var.iVal;

		var = m_pRecordset->GetCollect("StuName");
		str = (LPCSTR)_bstr_t(var);
		m_StuName = str;

		var = m_pRecordset->GetCollect("StuSex");
		str = (LPCSTR)_bstr_t(var);
		m_StuSex = str;

		var = m_pRecordset->GetCollect("StuYear");		
		m_StuYear = var.date;

		var = m_pRecordset->GetCollect("TeaID");		
		m_TeaID = var.iVal; 

		var = m_pRecordset->GetCollect("ComYear");		
		m_ComYear = var.date;

		var = m_pRecordset->GetCollect("ComFrom");
		str = (LPCSTR)_bstr_t(var);
		m_ComFrom = str;
	
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}	
}

void CDialogSTU::OnButtonCancel() 
{
	// TODO: ADD your control notification handler code here
	_variant_t var;
	CString str;
	FOUNCTION=INIT;
	//如果表为空,返回不做下面的操作
	if(m_pRecordset->BOF)
	{
		m_btnAdd.SetState(false);
		return;
	}	

	//修改各个矩形按钮的属性
	m_btnQuery.EnableWindow(true);
	m_btnAdd.EnableWindow(true);
	m_btnDelete.EnableWindow(true);
	m_btnModify.EnableWindow(true);
	m_btnFirst.EnableWindow(true);
	m_btnPre.EnableWindow(true);
	m_btnNext.EnableWindow(true);
	m_btnLast.EnableWindow(true);

	m_btnQuery.SetState(false);
	m_btnAdd.SetState(false);
	m_btnDelete.SetState(false);
	m_btnModify.SetState(false);
	m_btnFirst.SetState(false);
	m_btnPre.SetState(false);
	m_btnNext.SetState(false);
	m_btnLast.SetState(false);
	
	m_ctlStuID.SetReadOnly(FALSE);
	m_btnOK.SetFocus();
	//
	//把m_pRecordset所指当前记录显示出来
	//
	if(m_pRecordset->adoEOF)
	{
		m_pRecordset->MoveLast();
	}
	try
	{
		var = m_pRecordset->GetCollect("StuID");
		if(var.vt != VT_NULL)		
		m_StuID = var.iVal ;

		var = m_pRecordset->GetCollect("StuName");
		str = (LPCSTR)_bstr_t(var);
		m_StuName = str;

		var = m_pRecordset->GetCollect("StuSex");
		str = (LPCSTR)_bstr_t(var);
		m_StuSex = str;

		var = m_pRecordset->GetCollect("StuYear");		
		m_StuYear = var.date;

		var = m_pRecordset->GetCollect("TeaID");		
		m_TeaID = var.iVal; 

		var = m_pRecordset->GetCollect("ComYear");		
		m_ComYear = var.date;

		var = m_pRecordset->GetCollect("ComFrom");
		str = (LPCSTR)_bstr_t(var);
		m_ComFrom = str;
	
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -