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

📄 dialog_query.cpp

📁 一、编程环境: windows2003 +visual stdio c++ .net,Ado + SQL2000 二、SQL设置: 将在SQL2000下建立schooldata数据库
💻 CPP
字号:
//
/****************************************/
/*		SchoolManageSystem			    */
/*设计者:全佳营						*/
/*时间:2004.5.9-2004-5.18				*/
/*Email:ghostman@tzc.edu.cn				*/
/****************************************/
// Dialog_Query.cpp : 实现文件
//

#include "stdafx.h"
#include "SchoolManageSys_2.h"
#include "Dialog_Query.h"
#include ".\dialog_query.h"
#include "SChoolManageSys_2Dlg.h"

// CDialog_Query 对话框

IMPLEMENT_DYNAMIC(CDialog_Query, CDialog)
CDialog_Query::CDialog_Query(CWnd* pParent /*=NULL*/)
	: CDialog(CDialog_Query::IDD, pParent)
	, m_QueryUsername(_T(""))
	, m_QueryNum(_T(""))
	, m_QueryID(_T(""))
	, m_Queryname(_T(""))
{
}

CDialog_Query::~CDialog_Query()
{
}

void CDialog_Query::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_COMBO_QUERY, m_QueryChoice);
	DDX_Control(pDX, IDC_DATAGRID_QUERY, m_Datagrid_Query);
	DDX_Text(pDX, IDC_EDIT1, m_QueryUsername);
	DDX_Text(pDX, IDC_EDIT2, m_QueryNum);

	DDX_Control(pDX, IDC_EDIT1, m_eidtusername);
	DDX_Control(pDX, IDC_EDIT3, m_editID);
	DDX_Control(pDX, IDC_EDIT2, m_editnum);
	DDX_Text(pDX, IDC_EDIT3, m_QueryID);
	DDX_Control(pDX, IDC_EDIT4, m_editname);
	DDX_Text(pDX, IDC_EDIT4, m_Queryname);
}


BEGIN_MESSAGE_MAP(CDialog_Query, CDialog)
	ON_CBN_SELCHANGE(IDC_COMBO_QUERY, OnCbnSelchangeComboQuery)
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnBnClickedButtonQuery)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()


// CDialog_Query 消息处理程序
BOOL CDialog_Query::OnInitDialog(){
	CDialog::OnInitDialog();
	theApp.m_pSkin->ApplySkin((long)m_hWnd);

	m_QueryChoice.AddString("查询学生记录");
	m_QueryChoice.AddString("查询教师记录");
	m_QueryChoice.AddString("课程相关记录");
	m_QueryChoice.AddString("书籍相关记录");
	m_QueryChoice.AddString("学院相关记录");
	m_QueryChoice.AddString("系别相关记录");
	m_QueryChoice.AddString("社团相关记录");
	m_QueryChoice.AddString("班级相关记录");
	m_QueryChoice.SetCurSel(0);

	CWnd *m_pWnd=CWnd::FindWindow(NULL,"校人事信息管理系统");
	m_AdoConnection=((CSchoolManageSys_2Dlg*) m_pWnd)->m_AdoConnection;
	if(m_AdoConnection.IsOpen()){
		m_AdoRecordSet.SetAdoConnection(&m_AdoConnection);
		m_AdoRecordSet.SetCursorLocation();
	}
	return TRUE;
}
void CDialog_Query::OnCbnSelchangeComboQuery()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData();
	m_QueryID="";
	m_Queryname="";
	m_QueryNum="";
	m_QueryUsername="";
	UpdateData(FALSE);
	m_QueryChoice.GetLBText(m_QueryChoice.GetCurSel(),m_selection);
	if(m_selection=="相关记录"){
		AfxMessageBox("请重新选择一个");
		return ;
	}
	else if(m_selection=="查询学生记录"||m_selection=="查询教师记录"){
		m_editID.SetReadOnly();
		m_editname.SetReadOnly();
		m_eidtusername.SetReadOnly(FALSE);
		m_editnum.SetReadOnly(FALSE);
	}
	else if(m_selection=="课程相关记录"||m_selection=="书籍相关记录"
	||m_selection=="学院相关记录"||m_selection=="系别相关记录"||
	m_selection=="社团相关记录"||m_selection=="班级相关记录"){
		m_eidtusername.SetReadOnly();
		m_editnum.SetReadOnly();
		m_editID.SetReadOnly(FALSE);
		m_editname.SetReadOnly(FALSE);
		if(m_selection=="课程相关记录") m_editID.SetReadOnly();
	}
}

void CDialog_Query::OnBnClickedButtonQuery()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData();
	CString sql;
	long lOption(adCmdText);
	if(m_AdoConnection.IsOpen()){
		UpdateData(TRUE);
		if(m_selection=="查询学生记录"){
			if(m_QueryNum!=""){
				if(m_QueryUsername!="") AfxMessageBox("查询以学号为准");
				sql="SELECT * FROM studentrecord,lessonrecord,classrecord WHERE studentrecord.studynum = \'"+m_QueryNum+"\' AND lessonrecord.studynum=\'"+m_QueryNum+"\' AND studentrecord.classid=classrecord.classid";
			}
			else if(m_QueryUsername!=""){
				sql="SELECT *FROM studentrecord,lessonrecord,classrecord WHERE 姓名 LIKE \'%"+m_QueryUsername+"%\' AND studentrecord.studynum=lessonrecord.studynum AND studentrecord.classid=classrecord.classid";
			}else {
				sql="studentrecord";
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的学生资料");
		}
		if(m_selection=="查询教师记录"){
			if(m_QueryNum!=""){
				if(m_QueryUsername!="") AfxMessageBox("查询以教师号为准");
				sql.Format("SELECT *FROM teacherrecord,teachrecord WHERE teachernum =%s AND teacherrecord.teachernum=teachrecord.teachernum",m_QueryNum);
			}
			else if(m_QueryUsername!=""){
				sql="SELECT *FROM teacherrecord WHERE teachername LIKE \'%"+m_QueryUsername+"%\' AND teacherrecord.teachernum=teachrecord.teachernum";
			}
			else {
				sql="teacherrecord";
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的教师资料");
		}
		if(m_selection=="课程相关记录"){
			if(m_Queryname!=""){
				sql="SELECT *FROM lessonrecord WHERE 课程 LIKE \'%"+m_Queryname+"%\'";
			}else {
				sql.Format("lessonrecord");
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的课程信息");
		}
		if(m_selection=="书籍相关记录"){
			if(m_QueryID!=""){
				if(m_Queryname!="") AfxMessageBox("查询以书籍编号为准");
				sql.Format("SELECT *FROM bookrecord,studentrecord WHERE bookid =%s AND bookrecord.studynum=studentrecord.studynum",m_QueryID);
			}else if(m_Queryname!=""){
				sql="SELECT *FROM lessonrecord WHERE books LIKE \'%"+m_Queryname+"%\' AND bookrecord.studynum=studentrecord.studynum";
			}else {
				sql.Format("bookrecord");
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的书籍信息");
		}
		if(m_selection=="学院相关记录"){
			if(m_QueryID!=""){
				if(m_Queryname!="") AfxMessageBox("查询以学院编号为准");
				sql.Format("SELECT *FROM collegerecord WHERE collegeid=%s",m_QueryID);
			}else if(m_Queryname!=""){
				sql="SELECT *FROM collegerecord WHERE collegename LIKE \'%"+m_Queryname+"%\'";
			}else {
				sql.Format("collegerecord");
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的学院相关信息");
		}
		if(m_selection=="系别相关记录"){
			if(m_QueryID!=""){
				if(m_Queryname!="") AfxMessageBox("查询以系别编号为准");
				sql.Format("SELECT *FROM departmentrecord,collegerecord WHERE departmentid=%s AND departmentrecord.collegeid=collegerecord.collegeid",m_QueryID);
			}else if(m_Queryname!=""){
				sql="SELECT *FROM departmentrecord,collegerecord WHERE departmentname LIKE \'%"+m_Queryname+"%\' AND departmentrecord.collegeid=collegerecord.collegeid";
			}else {
				sql.Format("departmentrecord");
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的系的相关资料");
		}
		if(m_selection=="社团相关记录"){
			if(m_QueryID!=""){
				if(m_Queryname!="") AfxMessageBox("查询以社团编号为准");
				sql.Format("SELECT *FROM consortiumrecord WHERE consortiumid=%s",m_QueryID);
			}else if(m_Queryname!=""){
				sql="SELECT *FROM consortiumrecord WHERE consortiumname=\'%"+m_Queryname+"%\'";
			}else {
				sql.Format("consortiumrecord");
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的社团相关信息");
		}
		if(m_selection=="班级相关记录"){
			if(m_QueryID!=""){
				if(m_Queryname!="") AfxMessageBox("查询以班级编号为准");
				sql.Format("SELECT *FROM classrecord,departmentrecord WHERE classid=%s AND classrecord.departmentid=departmentrecord.departmentid",m_QueryID);
			}else if(m_Queryname!=""){
				sql="SELECT *FROM classrecord,departmentrecord WHERE classname LIKE \'%"+m_Queryname+"%\' AND classrecord.departmentid=departmentrecord.departmentid";
			}else {
				sql.Format("classrecord");
				lOption=adCmdTable;
			}
			m_Datagrid_Query.put_Caption("查找的班级相关信息");
		}
	}else {
		AfxMessageBox("数据库连接出现问题");
		return;
	}
	if(m_AdoRecordSet.IsOpen())
		m_AdoRecordSet.Close();
	m_AdoRecordSet.Open(sql,lOption);
	if(m_AdoRecordSet.IsEOF()){
		AfxMessageBox("没有搜索到相关记录");
		return;
	}
	m_Datagrid_Query.putref_DataSource(NULL);
	m_Datagrid_Query.putref_DataSource((LPUNKNOWN)m_AdoRecordSet.GetRecordset());
	m_Datagrid_Query.put_AllowAddNew(TRUE);
	m_Datagrid_Query.put_AllowDelete(TRUE);
	m_Datagrid_Query.put_AllowUpdate(TRUE);
	m_Datagrid_Query.Refresh();
	m_QueryID="";
	m_Queryname="";
	m_QueryNum="";
	m_QueryUsername="";
	UpdateData(FALSE);
}

void CDialog_Query::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	OnCancel();
}

void CDialog_Query::OnOK(){
	if(MessageBox("退出查询?","确定退出",MB_OKCANCEL|MB_ICONQUESTION)==IDOK){
		m_AdoConnection.CommitTrans();
		CDialog::OnOK();
	}
}

void CDialog_Query::OnCancel(){
	if(MessageBox("退出查询?","确定退出",MB_OKCANCEL|MB_ICONQUESTION)==IDOK){
		m_AdoConnection.CommitTrans();
		CDialog::OnCancel();
	}
}

⌨️ 快捷键说明

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